LIVE DEMOKnockoutJS中「click」處理程序中「this」的值是什麼?
請看下面的例子:
HTML:
<div data-bind="with: job">
<div data-bind="foreach: tasks">
<div>
<span data-bind="text: $data"></span>
<span data-bind="click: $parent.allDone">(Done)</span>
</div>
</div>
</div>
JS:
ko.applyBindings(function() {
this.job = {
tasks: ['Buy milk', 'Sleep', 'Work', 'Praise'],
allDone: function(data) {
console.log(this);
console.log(data);
}
};
});
你能澄清以下幾點:
- 爲什麼
this
在allDone
的值不是job
?是不是allDone
通過$parent
調用誰是job
? - 有沒有辦法在點擊時致電
allDone
,使得this
的值爲job
? 的
this
價值和data
看起來相似,但並不完全相同:this -> String {0: "S", 1: "l", 2: "e", 3: "e", 4: "p", length: 5}
data -> Sleep
的區別是什麼?