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 Arrow函數是什麼意思?
- 6. 爲什麼javascript getTime()不是函數?
- 7. 如果它不是bug,那麼爲什麼沒有輸出
- 8. 爲什麼RecyclerView不工作setBackground函數?
- 9. 爲什麼PHP filesize()函數不工作?
- 10. closest()函數不工作,爲什麼?
- 11. 爲什麼fetchObject函數不工作?
- 12. 嵌套函數不工作,爲什麼?
- 13. 爲什麼'strcat'函數不工作?
- 14. 爲什麼header()函數不工作?
- 15. 什麼是T-SQL語法如果這或那麼那還有什麼不做?
- 16. 爲什麼如果條件不工作
- 17. @ModelAttribute,爲什麼如果不工作?
- 18. 爲什麼如果不工作?
- 19. 如果函數參數類型是ABC,爲什麼不能傳值工作?
- 20. 爲什麼我的JavaScript調用對象方法不工作?
- 21. 如果作者是Post的作者,那麼做點什麼?
- 22. 如果我們從函數構造函數創建一個名爲'a'的對象,那麼爲什麼'a'不是函數的實例?
- 23. 爲什麼JSON對象不是數組?
- 24. C++爲什麼變量是函數而不是對象?
- 25. JavaScript的.call函數爲什麼不能用於對象文字?
- 26. 爲什麼CGWarpMouseCursorPosition會導致延遲?如果不是,那是什麼?
- 27. 什麼是JavaScript對象
- 28. 什麼是javascript`window.Notation`對象?
- 29. JavaScript語法:什麼是({})它是一個函數還是對象?
- 30. 爲什麼我的setInterval函數不能再次工作? (JavaScript)