《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个隐藏属性:函数的上下文(包括函数实参、函数形参、内嵌函数、内部变量等)和实现函数行为的代码
Objectjavascript

  1. proto: Object
  2. constructor: function Object() { [native code] }
  3. hasOwnProperty: function hasOwnProperty() { [native code] }
  4. isPrototypeOf: function isPrototypeOf() { [native code] }
  5. propertyIsEnumerable: function propertyIsEnumerable() { [native code] }
  6. toLocaleString: function toLocaleString() { [native code] }
  7. toString: function toString() { [native code] }
  8. valueOf: function valueOf() { [native code] }

反射

检查对象并肯定对象有什么属性是很容易的事情,只要试着去检索该属性并验证取得的值,typeof操做符对肯定属性的类型颇有帮助。
1)检查属性的类型:typeofjava

typeof flight.number    //'number'
typeof flight.status    //'string'
typeof flight.manifest  //'undefined'

请注意原型链中的任何属性也会产生一个值:数组

typeof flight.toString     //'function'
typeof flight.constructor  //'function'

2)检查属性:hasOwnPropertyapp

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个参数是传给调用函数的参数数组。this

第五章:继承

继承的两个做用:一、代码重用;二、类型系统规范。prototype

当一个函数对象呗建立时,Functinon构造器产生的函数对象会运行相似下面的代码:code

this.prototype={constructor:this};

新函数对象被赋予一个prototype属性,其值是包含一个constructor属性且属性值为该新函数的对象。该prototype对象是存放继承特征的地方。对象

相关文章
相关标签/搜索