使用此代码( jsfiddle ):
Animal = function() {
};
Animal.prototype.bark = function() {};
Animal.inspect = function() {
console.log( this.prototype.hasOwnProperty( 'bark' ) ); // true
}
Animal.inspect();
inspect
中的 this
似乎是 Animal 的一个新实例(而不是全局或 window
范围)。
怎么会这样?
最佳答案
您没有创建实例。
您对构造函数对象本身调用inspect()
。
因此,this
是Animal
,然后检查原型(prototype)(不是当前对象)以查看它是否具有 back 属性。
关于javascript - 为什么没有 new 运算符就创建了新实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33935967/