2
A
回答
0
另一種選擇:
var foo = function() { this.bar = 10; return this; }();
console.log(foo.bar);
閱讀關於自我執行的功能在這裏:
What is the purpose of a self executing function in javascript?
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
相關問題
- 1. 爲什麼心不是我的JavaScript對象工作
- 2. 如果...那麼JSX爲Javascript
- 3. ng-disabled是否在div標籤中工作?如果不是,那爲什麼?
- 4. 那麼函數SDL_FreeSurface是做什麼的?
- 5. 爲什麼javascript getTime()不是函數?
- 6. 嵌套函數不工作,爲什麼?
- 7. 爲什麼'strcat'函數不工作?
- 8. 爲什麼PHP filesize()函數不工作?
- 9. 爲什麼fetchObject函數不工作?
- 10. 什麼是T-SQL語法如果這或那麼那還有什麼不做?
- 11. @ModelAttribute,爲什麼如果不工作?
- 12. 爲什麼如果不工作?
- 13. 爲什麼我的JavaScript調用對象方法不工作?
- 14. 如果我們從函數構造函數創建一個名爲'a'的對象,那麼爲什麼'a'不是函數的實例?
- 15. 爲什麼JSON對象不是數組?
- 16. 爲什麼CGWarpMouseCursorPosition會導致延遲?如果不是,那是什麼?
- 17. 什麼是JavaScript對象
- 18. 爲什麼$(this)不能在javascript函數中工作?
- 19. javascript匿名函數:爲什麼我的腳本不工作
- 20. 爲什麼Bootstrap selectpicker JavaScript函數在asp中不工作?
- 21. javascript函數替換不會工作,爲什麼?
- 22. 爲什麼JavaScript函數在不同的時間工作?
- 23. 爲什麼是代理在ES2015一個Map對象不工作
- 24. 爲什麼不是這個對象循環工作?
- 25. 如果實現對象不是Serializable,那麼如何序列化基礎對象?
- 26. 在JavaScript中:如果Object是一個函數,那麼如果一個函數是一個對象的實例,它怎麼會是這樣呢
- 27. 如果範圍變量不在對象中,爲什麼不會ng類工作?
- 28. 這是爲什麼在JavaScript中工作?
- 29. 如果函數是javascript中的對象,爲什麼function.constructor指向Function而不是Object?
- 30. 什麼是抽象函數的優雅方式 - 不是對象?