2011-08-30 89 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 
相關問題