《JavaScript语言精粹》读书笔记
第三章:对象
//1.定义一个方法 method
Function .prototype.method=function(name, func){
this.prototype[name]=func;
return this;
}
//2.给Object增加一个create方法,这个方法创建一个使用原对象作为其原型的新对象
Object.create=function(o){
var F=function(){};
F.prototype=o;
return new F();
}
//继承
Function.method(‘inherits’, function(Parent){
this.prototype=new Parent();
return this;
});
1)JS中的对象是name/value对的集合并拥有一个连到原型对象的隐藏连接。
2)对象字面量产生的对象连接到Object.prototype;
3)引用:对象通过引用来传递,他们永远不会被复制。
4)函数就是对象。
5)函数对象连接到Function.prototype(该原型的对象本身连接到Object.prototype)。
6)函数在创建的时候会附加2个隐藏属性:函数的上下文(包括函数实参、函数形参、内嵌函数、内部变量等)和实现函数行为的代码
Object
- proto: Object
- constructor: function Object() { [native code] }
- hasOwnProperty: function hasOwnProperty() { [native code] }
- isPrototypeOf: function isPrototypeOf() { [native code] }
- propertyIsEnumerable: function propertyIsEnumerable() { [native code] }
- toLocaleString: function toLocaleString() { [native code] }
- toString: function toString() { [native code] }
- valueOf: function valueOf() { [native code] }
反射
检查对象并确定对象有什么属性是很容易的事情,只要试着去检索该属性并验证取得的值,typeof操作符对确定属性的类型很有帮助。
1)检查属性的类型:typeof
typeof flight.number //'number'
typeof flight.status //'string'
typeof flight.manifest //'undefined'
请注意原型链中的任何属性也会产生一个值:
typeof flight.toString //'function'
typeof flight.constructor //'function'
2)检查属性:hasOwnProperty
flight.hasOwnProperty('number') //true
flight.hasOwnProperty('constructor') //false
第四章:函数
1)除了声明时定义的形式参数,每个函数还接收2个附加的参数:this和arguments
2)一个函数总会返回一个值,如果没有指定返回值,则返回undefined。如果函数调用时在前面加上了new前缀,且返回值不是一个对象,则返回this。
函数字面量:可以通过函数字面量来创建:
包括4个部分:
1
//创建一个名为add变量,并用来把两个数字相加的函数赋值给它
var add=function(a,b){
return a+b;
}
【this】
this在JS中有4中调用模式:
①方法调用模式:当一个函数被保存为对象的一个属性时,就称它是一个方法。当一个方法被调用时,this被绑定到该对象。
②函数调用模式:当一个函数并非一个对象的属性时,它就是被当做一个函数来调用。这个模式下的this被绑定到全局对象window,函数实际是window的属性。
③构造器调用模式:如果在一个函数前面带上new来调用,则背地里会创建一个连到该函数prototytpe成员的新对象,同时this会被绑定到那个新对象上。
④apply调用模式:允许选择this的值,apply第一个参数绑定给this的值,第2个参数是传给调用函数的参数数组。
第五章:继承
继承的两个作用:1、代码重用;2、类型系统规范。
当一个函数对象呗创建时,Functinon构造器产生的函数对象会运行类似下面的代码:
this.prototype={constructor:this};
新函数对象被赋予一个prototype属性,其值是包含一个constructor属性且属性值为该新函数的对象。该prototype对象是存放继承特征的地方。
《JavaScript语言精粹》读书笔记的更多相关文章
- csapp读书笔记-并发编程
这是基础,理解不能有偏差 如果线程/进程的逻辑控制流在时间上重叠,那么就是并发的.我们可以将并发看成是一种os内核用来运行多个应用程序的实例,但是并发不仅在内核,在应用程序中的角色也很重要. 在应用级 ...
- CSAPP 读书笔记 - 2.31练习题
根据等式(2-14) 假如w = 4 数值范围在-8 ~ 7之间 2^w = 16 x = 5, y = 4的情况下面 x + y = 9 >=2 ^(w-1) 属于第一种情况 sum = x ...
- CSAPP读书笔记--第八章 异常控制流
第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流.目前为止,我们学过两种改变控制流的方式: 1)跳转和分支: 2)调用和返回. 但是上面的方法只能控制程序本身,发生以下系统状态的 ...
- CSAPP 并发编程读书笔记
CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- 读书笔记--SQL必知必会18--视图
读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...
- 《C#本质论》读书笔记(18)多线程处理
.NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...
- C#温故知新:《C#图解教程》读书笔记系列
一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...
- C#刨根究底:《你必须知道的.NET》读书笔记系列
一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...
- Web高级征程:《大型网站技术架构》读书笔记系列
一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...
随机推荐
- alpha七天冲刺计划-第一天
alpha七天冲刺计划-第一天 一.团队会议: 内容:具体分配任务到个人,预估项目时间,确定UI样式. 合照: 二.团队成员任务认领: 李尤:界面UI设计. 彭迪彬:HTML+CSS部分实现. 任路乾 ...
- Python下载网页图片
有时候不如不想输入路径,那就需要用os模块来修改当前路径 下面是从其他地方看到的一个例子,就是把图片url中的图片名字修改,然后就可以循环保存了,不过也是先确定了某个url 来源:http://www ...
- [LeetCode 题解]: String to Interger (atoi)
Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. ...
- 在linux 创建网络会话和绑定两块网卡
1. 如果我们在公司网络中要手动指定网络的IP地址,当我们回到家里则是使用DHCP(动态主机配置协议)自动分配IP地址.这就有点麻烦了,因为要频繁的修改IP地址,所以接下来我们来创建网络会话----- ...
- Public Bike Management (30)(DFS,VRCTOR,模拟)(PAT甲级)
#include<bits/stdc++.h>using namespace std;const int inf = 1e9;int sum,n,tar,m;int num[507];in ...
- link和@import的区别是什么 ?
1.link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务:@import属于CSS范畴,只能加载CSS. 2.link引入CSS是,在页面载入时间同时加载:@import页面网页完全 ...
- composer手动安装到windows
1.配置系统变量 Path 计算机->高级系统设置->环境变量->找到系统变量Path 双击 加入 ;php根目录地址:php中ext地址 如 :“;D:\phpStudy ...
- 如何使用 sort 命令来找到几个版本库之间的共同文件
Linux 命令行中的词汇出现次数统计 导航: 需求: 需要快速了解 ChromeExtended 编写. 操作: 从 Github 上找到了五个前辈们写的 Mode ,需要对其进行分析. 需要用到的 ...
- 网页中这 10 种字体的运用方式,不会让人觉得 Low
简评:字体特效非常多,有目的地选取合理的特效是让它们发挥效果的诀窍所在.好的字体排版是不需要辅助就能被识别的,否则这个设计是失败的. 本文转载自 UISDC,如需转载请联系他们. 对于设计师而言,在日 ...
- JavaScript DOM编程艺术 笔记(一)
探测浏览器品牌版本代码-----浏览器嗅探 代码 JavaScript==ECMAScript java几乎可以部署在任何环境,js只应用于web浏览器 API是一组得到各方面共同认同的基本约定(元素 ...