我對JavaScript很有點新鮮,所以剛剛學習「this」指針,我試圖用apply()來改變對象的上下文,我跑了代碼在NodeJS REPL中,並且輸出未定義且未定義。Javascript,這個指針在瀏覽器和控制檯上返回不同的值
var word="Hello";
var obj={word:"GB"};
function foo(){return this.word;}
console.log(foo());
foo.apply(obj);
console.log(foo());
,我跑的Chrome瀏覽器一樣,它輸出你好你好和使用適用(),輸出應該是您好,GB。
我感到困惑的這種用法。 請幫忙。
不要緊,你有多少次執行'FOO()'(通過'foo.apply包括(OBJ)'),你永遠不會改變的價值'this.word'爲什麼它會返回任何不同的東西? – Phil
this.obj.word會給你你想要的! – sathya
我覺得你的困惑來自於對['Function.prototype.apply']的錯誤理解(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply)。我建議你仔細閱讀文檔,並嘗試'console.log(foo.apply(obj))' – Phil