爲什麼在調用變換器(o.inc)時「o.value」的值不變?Javascript Gotcha:爲什麼價值不增加?
小提琴:http://jsfiddle.net/illumine/qbr9xupt/
function customobject(){
this.value = 2;
}
customobject.prototype.inc = function(){
this.value++;
}
function changer(func){
func();
}
var o = new customobject();
alert(o.value); // o.value = 2
o.inc();
alert(o.value); // o.value = 3
changer(o.inc);
alert(o.value); // Still 3 why not 4
因爲'this'不是你認爲的那樣。在'this.value ++'之前嘗試'alert(this)',你會看到。 – 2015-02-24 17:42:36
這個頁面解釋你正在經歷的事情,也有一個類似於你的代碼的例子。 http://snook.ca/archives/javascript/javascript_pass – Nelson 2015-02-24 17:46:55