箭頭函數 爲何: 讓this始終指向包含它的對象 是什麼: 箭頭左邊是參數,右邊是函數體 只包含一個表達式,連{ ... }和return都省略掉了。 還有一種能夠包含多條語句,這時候就不能省略{ ... }和return: var fn = x => x * x; x => { if (x > 0) { return x * x; } else { return - x * x; } } this 箭頭函數看上去是匿名函數的一種簡寫, 但實際上,箭頭函數和匿名函數有個明顯的區別:箭頭函數內部的this是詞法做用域,由上下文肯定。 this默認指向全局變量或undefined(strict模式下的報錯),只有對象調用時,才讓this指向對象 var obj = { birth: 1990, getAge: function () { var b = this.birth; // 1990 var fn = function () { return new Date().getFullYear() - this.birth; // this指向window或undefined }; return fn(); } }; var obj = { birth: 1990, getAge: function () { var b = this.birth; // 1990 var fn = () => new Date().getFullYear() - this.birth; // this指向obj對象 return fn(); } };