摘要:在箭頭函數中,指針是繼承于其所在的作用域。個人理解為箭頭函數不具備函數作用域,相當于表達式,即為箭頭函數被調用時外層的
箭頭函數 定義
定義一個箭頭函數很簡單,基本語法是:
([param] [, param]) => { statements } param => expression
param 是參數,根據參數個數不同,分這幾種情況:
() => { ... } // 零個參數用 () 表示;
x => { ... } // 一個參數可以省略 ();
(x, y) => { ... } // 多參數不能省略 ();
當然,和普通函數一樣,箭頭函數也可以使用 ES6 新增的「默認參數」和「剩余參數」( Firefox15+ 開始支持):
var func1 = (x = 1, y = 2) => x + y; func1(); // 得到 3 var func2 = (x, ...args) => { console.log(args) }; func2(1,2,3); // 輸出 [2, 3]
箭頭函數允許多行語句或者單行表達式作為函數體。多行語句要用 {} 括起來;單行表達式不需要 {},并且會作為函數返回值:
x => { return x * x }; // 函數返回 x * x x => x * x; // 同上一行 x => return x * x; // SyntaxError 報錯,不能省略 {} x => { x * x }; // 合法,沒有定義返回值,返回 undefined
箭頭函數也是 JS 函數的一種,所以之前的 instanceof 和 typeof 依然可用:
var func1 = () => {}; func1 instanceof Function; // true var func2 = () => {}; typeof func2; // "function"特性
箭頭函數內部沒有 constructor 方法,也沒有 prototype,所以不支持 new 操作。new (() => {}) 會觸發(fā) TypeError 報錯。
new (() => {}) // Uncaught TypeError: () => {} is not a constructor(…)
箭頭函數沒有自己內部的 this 指針。在箭頭函數中, this 指針是繼承于其所在的作用域。(個人理解為箭頭函數不具備函數作用域,相當于表達式,this即為箭頭函數被調用時外層的this)
var a = 1; var test = { a: 100, c: function(){ console.log(this.a); }, d: ()=>{console.log(this.a)} } test.c();//100 test.d();//1
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/78706.html
摘要:也就是說箭頭函數的的值不再根據調用時上下文確定,而是像普通變量那樣根據定義時的作用域鏈進行查找。箭頭函數中的依然要根據定義時的作用域鏈進行查找。知乎這篇文章對箭頭函數的一些不適合的場景進行了總結,可以作為參考。 es6 - 箭頭函數 哇,箭頭函數...,聽起來好NB,但是如果你知道它是因為使用了=>這樣類似箭頭的符號 ,所以才叫箭頭函數。 瞬間感覺:呵,這名字起的...。 es6增加了...
摘要:特性介紹箭頭函數是新增的特性之一,它為這門語言提供了一種全新的書寫函數的語法。用生成的函數會定義一個自己的,而箭頭函數沒有自己的,而是會和上一層的作用域共享。 本文同步自我得博客:http://www.joeray61.com JS中的箭頭 箭頭在JS里并不算是個新鮮的玩意兒,一直以來,JS都支持-->這樣的箭頭。 很早的時候有些瀏覽器還不支持JS,當時的人們?yōu)榱思嫒葸@些瀏覽器,需要這...
摘要:令人震驚的箭頭函數引入了寫入函數的新語法。使用箭頭函數創(chuàng)建簡單對象時有一個警告。代碼因此被默默地解釋為一個不執(zhí)行任何操作并返回未定義的箭頭函數。內部函數是一個箭頭函數,所以它從封閉范圍繼承此函數。 箭頭從一開始就一直是JavaScript的一部分。第一個JavaScript教程建議在HTML注釋中包裝內聯腳本。這會阻止不支持JS的瀏覽器錯誤地將JS代碼顯示為文本。你會寫這樣的東西: ...
摘要:有傳聞說,箭頭函數的語法,是受到了的影響,并且它與中的語法一樣,共享上下文。箭頭函數是新增加的一個特性。箭頭函數沒有自己的值,其值是通過繼承其它傳入對象而獲得的通常來說是上一級外部函數的的指向。 箭頭函數 1. 簡單的定義: 胖箭頭函數 Fat arrow functions,又稱箭頭函數,是一個來自ECMAScript 2015(又稱ES6)的全新特性。有傳聞說,箭頭函數的語法=>,...
摘要:箭頭函數簡單的定義胖箭頭函數,又稱箭頭函數,是一個來自又稱的全新特性。箭頭函數是新增加的一個特性。使用箭頭函數的注意點箭頭函數在參數和箭頭之間不能換行。值得注意的一點就是對象的指向是可變的,但在箭頭函數內是固定的。 箭頭函數 1. 簡單的定義: 胖箭頭函數 Fat arrow functions,又稱箭頭函數,是一個來自ECMAScript 2015(又稱ES6)的全新特性。有傳聞說,...
摘要:對象的指向是可變的,但是在箭頭函數中,它是固定的。同樣的由于箭頭函數沒有自己的所以傳統的顯性綁定無效內部的指向外部在的學習中,的指向問題一直是個難點,特別是在對象方法中使用時,必須更加小心。由此箭頭函數在很大程度上減少了我們的困擾。 什么是箭頭函數 用法 ES6 允許使用箭頭(=>)定義函數 測試 var p1 = document.getElementById(test1)...
閱讀 1034·2023-04-25 22:27
閱讀 880·2021-11-22 14:56
閱讀 996·2021-11-11 16:54
閱讀 1695·2019-08-30 15:54
閱讀 3512·2019-08-30 13:20
閱讀 1220·2019-08-30 10:55
閱讀 2091·2019-08-26 13:34
閱讀 3291·2019-08-26 11:53