《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高级征程:《大型网站技术架构》读书笔记系列
一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...
随机推荐
- Java菜鸟之java基础语法,运算符(三)
赋值运算符 (一)JAVA种的赋值运算符 = ,代表代表的等于,一般的形式是 左边变量名称 = 右边的需要赋的指或者表达式,如果左侧的变量类型级别比较高,就把右侧的数据转换成左侧相同的高 ...
- thinkjs 框架图
- jmeter- 性能测试3:聚合报告(Aggregate Report )
jmeter-监听器-聚合报告样例: 字段说明: label:请求名称,自己定义的 #Samples:这次测试中一共发出了多少个请求,如果模拟20个用户,每个用户迭代20次,那么就是400(未设置持续 ...
- Android-ListView-(BaseAdapter使用)
在Android中就提供了专门列表显示条目的控件,ListView控件,ListView控件不是一次性加载全部数据,他是只加载用户在屏幕看得到的数据,当用户滑动的过程中在去加载新的数据,同时会自动销毁 ...
- Django-03视图层
5.1 视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片 ...
- collections中的defaultdict
用类型 用函数返回值 嵌套的dict from collections import defaultdict def tree(): return defaultdict(tree) c = defa ...
- 牛客挑战赛30D 小A的昆特牌(组合数学)
题面 传送门 题解 很容易写出一个暴力 \[\sum_{i=l}^r {i+n-1\choose n-1}{s-i+m\choose m}\] 即枚举选了多少个步兵,然后用插板法算出方案数 我们对这个 ...
- [ActionScript 3.0] AS利用ByteArray向PHP发送二进制数据生成图片
flash as3向php发送二进制数据,通过php保存成图片. AS端: package { import com.JPEGEncoder.JPGEncoder; import flash.disp ...
- 部署LNMP架构及其应用
部署企业LNMP架构 (一)首先安装nginx服务,具体请见另一篇关于nginx的博文. (二)安装MySQL数据库 .安装前准备 [root@localhost ~]# rpm -e mysql-s ...
- POJ3666 Making the Grade
POJ3666 Making the Grade 题意: 给定一个长度为n的序列A,构造一个长度为n的序列B,满足b非严格单调,并且最小化S=∑i=1N |Ai-Bi|,求出这个最小值S,1<= ...