有了这个代码(jsfiddle):如何在没有新操作员的情况下创建新实例?
Animal = function() {
};
Animal.prototype.bark = function() {};
Animal.inspect = function() {
console.log(this.prototype.hasOwnProperty('bark')); // true
}
Animal.inspect();
this
内inspect
似乎是动物(而非全局或window
范围)的新实例。
怎么回事?
JS没有这样的类,但是动物是一个“类”,尽可能多地写入'new Animal()'并获得一个具有'bark'属性的东西的实例(但它将不会有'inspect'属性) –
@ChrisLear我同意,而我没有。 “新动物”不是“动物”的实例,它是代表“动物”的对象。无论如何...让我们不要深入讨论JS的奇怪之处:) – bgusach
@bgusach:当然'新动物instanceof动物'?!该对象(我们称之为实例)委托给'Animal.prototype'。 – Bergi