function MyFunc()
{
var msg = 'hello';
this.speak = function() {
console.log(msg);
}
}
var obj = new MyFunc();
obj.speak();
以上代码的怪异之处在于它可以正常工作。但是“ msg”不是对象的一部分。那么“ msg”如何保存在内存中。如果这样做的话,我会更加了解:
this.msg = 'hello';
console.log(this.msg);
因为这是实例化对象的一部分。但是如何将“ var msg”之类的常规变量与此对象一起保存?
编辑:此问题与闭包不同,因为这是一个特定的用例。