考慮以下對象:錯誤,它失去範圍
var data = {
el : $('.element'),
value1 : this.el.data('value1')
}
爲什麼this
失去範圍是什麼?並拋出一個錯誤?
我可以做到以下幾點,但它不是有效的,因爲我基本上選擇的div兩次:
var data = {
el : $('.element'),
value1 : $('.element').data('value1')
}
這適用於功能:
var data = {
el : $('.element'),
test : function() {
console.log(this.el) // works
}
}
它完全沒有損失範圍,它根本不是你想象的那樣。你還沒有改變範圍,你使用'this'的範圍與'var data = {' –
之前的行相同只是試圖澄清你的範圍問題。 當你定義「數據」時,「這個」範圍仍然是全局範圍..數據尚未定義。 javascript引擎會在數據完全評估之前嘗試評估this.el.data('value1'),因此這只是對數據的引用。 –