JavaScript中的原型继承

JavaScript遵守下面这些编程的基本规则:

  1. 所有的数据都是对象
  2. 要得到一个对象,不是通过实例化类,而是找到一个对象作为原型并克隆它
  3. 对象会记住它的原型
  4. 如果对象无法响应某个请求,它会把这个请求委托为它自己的原型

1. 所有的数据都是对象

js在设计的时候,仿照着Java引入了两套类型机制:基本类型和对象类型。
基本类型包括:undefined/number/string/boolean/function/object。设计者的本意是,除了undefined之外,别的都是对象。为了实现这一目标,number/boolean/string这几种基本类型数据也可以通过包装类的方式来变成对象类型。
JavaScript中的根对象是Object.prototype对象。它是一个空的对象。js中的每个对象,实际上都是从Object.prototype对象可空出来的。

2. 要得到一个对象,不是通过实例化,而是找到一个对象作为原型并克隆它

在js中,我们并不需要关心克隆的细节,我们所需要做的只是显示地调用var obj1 = new Object()或者var obj2 = {}。此时,引擎内部就会从Object.prototype上面克隆一个对象出来。
下面的代码展示了用new运算符从构造器中得到一个对象:

function Person( name ) {
    this.name = name
}

Person.prototype.getName = function() {
    return this.name
}

var a = new Person( 'sven' )

console.log(a.name) // sven
console.log(a.getName()) // sven
console.log(Object.getPrototypeOf(a) === Person.prototype) // true

--continue--

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容