我刚刚打开Chrome Dev Tools并输入了以下代码:
function Car() {
this.value = 10;
}
var cc = new Car();
但是当我输入这段代码时:
cc.prototype
我得到了undefined
。为什么呢?
据我所知'cc'对象必须与Car构造函数具有相同的原型。
答案 0 :(得分:0)
您需要使用cc.__proto__
来获取原型对象。
答案 1 :(得分:0)
原型位于cc.__proto__
属性中。
浏览器(JS引擎)将它放在那里。
新功能类似于:
function new() {
var newObj = {},
fn = this,
args = arguments,
fnReturn;
// Setup the internal prototype reference
newObj.__proto__ = fn.prototype;
// Run the constructor with the passed arguments
fnReturn = fn.apply(newObj, args);
if (typeof fnReturn === 'object') {
return fnReturn;
}
return newObj;
}
这一行是您的相关行:
newObj.__proto__ = fn.prototype;
Car.prototype
是Car对象的所有方法和属性的定义。 cc
实例将其存储在__proto__