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