Object原型对象和Function原型对象

var Person = function() {};

    Object.prototype.a = 'A'

    Function.prototype.b = 'B'

    var p = new Person();    
    console.log(p.a);//A
    console.log(p.b);//undefined复制代码

问为何?

有很多同窗第一眼看上去就以为很疑惑,p不是应该继承了Function原型里面的属性吗,为何p.b返回是undefined呢?javascript

其实,只要仔细想想就很容易明白了,Person函数才是Function对象的一个实例,因此经过Person.a能够访问到Function原型里面的属性,可是new Person()返回来的是一个对象,它是Object的一个实例,是没有继承Function的,因此没法访问Function原型里面的属性。可是,因为在js里面全部对象都是Object的实例,因此,Person函数能够访问到Object原型里面的
属性,Person.b => 'b'。java

相关文章
相关标签/搜索