原型

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 对象的方法。

原文地址:https://www.cnblogs.com/SQP51312/p/5984423.html