我试图了解new关键字的行为并在ES5中进行调用。假设有人犯了一个错误,并拥有以下代码并在浏览器中运行:
function Shape(colour) {
this.colour = colour;
}
function Circle(colour) {
Shape(this, colour);
}
var shape1 = Shape('blue'); // undefined
var shape2 = Circle('red'); // undefined
我的问题是,会发生什么?
window.colour // no points to window; shouldn't this point to 'red' now?
// window.colour now points to a circle object; why is there no colour property on the
//object but it rather points to a circle object?
new Circle('red');
我已经阅读了一些有关此和新内容的指南,但还没有弄清楚它们如何影响发生的事情。
感谢您的帮助, 安娜格尼