1. Prototype
通常来说,javascript中的对象就是一个指向prototype的指针和一个自身的属性列表。
只有构造器才具有prototype属性,原型链继承就是创建一个新的指针,指向构造器的prototype属性。
原型链中标准做法。要确保构造函数没有任何参数。
2. call() 和 apply()
call, apply都属于Function.prototype的一个方法。每个方法都有call, apply属性。
foo.call(this, arg1,arg2,arg3) == foo.apply(this, arguments)==this.foo(arg1, arg2, arg3)
相同点:两个方法产生的作用是完全一样的。
不同点:方法传递的参数不同。
当参数明确时可用call, 当参数不明确时可用apply给合arguments。
3.继承
创建类的最好方式是用构造函数定义属性,用原型定义方法。这种方式同样适用于继承机制,用对象冒充继承构造函数的属性,用原型链继承 prototype 对象的方法。