我正在探索開源開發和使用yeoman和淘汰賽發電機與十字路口和requirejs。我已經看過ES6類和構造函數,並且我並不完全理解在某些情況下,在可見性不是ES6類或函數模式中發生的函數錯誤的情況下,敲除操作會發生什麼。所以我以前在淘汰賽中已經看到過這種行爲,但是如果可以的話,我想要一些額外的細節。淘汰賽觀察不是一個函數錯誤
一個codepen這裏的這種行爲:http://codepen.io/srabeeh/pen/pjqweX?editors=001
有人能解釋失敗的功能查找的來源是什麼? 代碼:
class Circle {
constructor(diameter, quality) {
this.diameter = ko.observable(diameter);
this.quality = ko.observable(quality);
}
updateCircle(){
console.log('updating...');
// the correct way to update an observable
// this line fails with diameter is not a function - uncomment to see error
// this.diameter(this.diameter() +1);
// this works but i fear this obliterates the observable
this.diameter += 1;
console.log(this.diameter); // gives NaN of course as it's an observable
//function call fails that it's not a function
console.log(this.diameter());
}
startTimer(){
var timer = setInterval(this.updateCircle, 1000)
}
};
let c = new Circle(270, 5);
c.startTimer();
感謝
你檢查過這個指針是否在updateCircle方法中正確嗎?否則你可能需要綁定它。 – Tarion
偏離主題,但這是什麼樣的你和你不明白和不需要的東西?擺脫所有的煩惱,並從基礎開始。不要惹你不明白的東西。如果你不理解它,你不需要它。除非你明白它是什麼,並認識到你的需要,否則不要使用某些東西。不要一下子試試一切。分解它,並一次採取一件事。在進入ES6,requirejs和yoeman之前,瞭解自己的淘汰賽,以及這個十字路口的東西是什麼?我從來沒有聽說過它。 – hasen