js 中 constructor的问题

function Test(){}
Test.prototype.name='t';
Test.prorotype.year=function(){
        return 1993
}

var test=new Test();
//这样我们就通过Test  创建了一个 test的实例

test有基本的方法和原型上的方法,__proto__上有Object,所以有Object的方法,但是为什么我们会有apply这些方法,他明明在contructor的__proto__上,原型链会找到constructor上去?求大牛指正,原型不应该一直在__proto__上么?

阅读 3.1k
3 个回答

Every object created by a constructor has an implicit reference (called the object's prototype) to the value of its constructor's "prototype" property.
大概意思就是每一个由constructor创建的对象都会有一个隐式的引用,这个引用指向constructor的prototype值的。

所以你说的原型链会找到constructor上去也是对的。

Test上有apply方法是因为Funciton.prototype有apply这个方法,
而Test则是Function的一个实例,所以Test上有apply这个方法

关于Object和Function的关系,可以参考一下这个问题,https://segmentfault.com/q/10...,希望对你有所帮助

testapply 方法?

推荐问题
宣传栏