我有以下的情況中定義的方法。這是什麼原因?JavaScript不陣列
2
A
回答
2
因爲您在對象中使用this
關鍵字。在這種情況下,this.b
指的是未定義的內容,應該是window
的屬性。
閱讀this article,瞭解示波器非常有用。
在這種情況下,你應該聲明的變量是這樣的:
b = 't'; //note there is not keywork var, it is a window global variable
var a = {
c: [{
b: 'a',
m: this.b //is 't'
}],
b: function() {
alert('hi');
}
};
alert(a.c[0].m); //will display 't'
2
因爲(假設你在瀏覽器的上下文中執行這個)this
是window
,你沒有定義window.b
。
this
的值取決於您執行當前函數的方式,而不是通過對象字面量。
MDN有。
0
當運行a.c [0] .m的值時,這並不是指a,而是指整個範圍。
如果你想你以後的行爲,則需要將其更改爲:
var a = { b: function() { alert('hi'); }, c: [{}] };
a.c[0].m = a.b;
相關問題
- 1. 的JavaScript不是從陣列
- 2. Javascript陣列不會更新
- 3. Javascript陣列不會排序
- 4. 排列Javascript陣列
- 5. JavaScript的陣列
- 6. 陣列在javascript
- 7. 的JavaScript陣列
- 8. 陣列Javascript
- 9. JavaScript和陣列
- 10. Javascript陣列
- 11. 陣列在Javascript
- 12. Javascript子陣列
- 13. 的JavaScript - 分配 - 陣列陣列
- 14. 減少的Javascript子陣列單陣列
- 15. javascript新陣列 - > php陣列
- 16. Javascript陣列整數陣列格式
- 17. Javascript/PHP恢復陣列陣列
- 18. 陣列的排序陣列上在Javascript
- 19. JavaScript鏈接陣列
- 20. Javascript排序陣列
- 21. 解碼Javascript陣列
- 22. 的Javascript:從陣列
- 23. JavaScript刪除陣列
- 24. 陣列與在Javascript
- 25. Javascript陣列結構
- 26. Javascript圖像陣列
- 27. Javascript陣列操作
- 28. 從陣列的JavaScript
- 29. 洗牌陣列javascript
- 30. 穿越陣列Javascript