2011-08-30 69 views

回答

1

你的语法是错误的:

function foo() { this.bar = 1; } 
var a = new foo(); 
a.bar; // 1 
1

这是一个定义。你需要实例化它。

var foo = function() { this.bar = 1; } 

>> new foo().bar 
0

这里的问题是,您只定义了foo而没有实际执行它。因此,行this.bar = 1甚至还没有运行,并且没有办法定义bar

接下来的问题是,当你运行foo它需要哪些this将被定义的上下文。例如

var x = {} 
foo.apply(x); 
x.bar === 1 // true 

或者你也可以运行foo作为结果

一个构造函数和访问 bar
var x = new foo(); 
x.bar === 1 // true 
相关问题