Prototype property throwing undefined
本问题已经有最佳答案,请猛点这里访问。
为什么
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function Test(name){ this.name = name; } Test.prototype = { constructor: Test, sayHello : function(){ console.log(this.name); } } var z = new Test("Hello"); console.log(z.prototype); //undefined console.log(zUtils.constructor); // Test |
我可以通过
混淆的问题是,
1。函数属性。任何函数都可以有一个
1 2 3 | Test.prototype = { sayHello: function() {} } |
此对象的属性将成为用此构造函数函数构造的对象的继承属性和方法:
1 | var z = new Test(); |
现在,
2。实例原型。实例对象(在您的情况下为
在chrome和firefox中,您可以使用
要获得在对象构造过程中使用的原型,应使用
为了得到原型,使用
您应该在对象上使用
1 | Object.getPrototypeOf(z); |
您可以这样做:
1 2 3 | Test.prototype=Object.getPrototypeOf(z); console.log(Test.prototype); console.log(Object.getPrototypeOf(z)); |