日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ES6---箭头函数()={} 与function的区别(转载)

發(fā)布時間:2023/12/18 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ES6---箭头函数()={} 与function的区别(转载) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.箭頭函數(shù)與function定義函數(shù)的寫法:

//function function fn(a, b){return a + b; } //arrow function var foo = (a, b)=>{ return a + b };

2.this的指向:

使用function定義的函數(shù),this的指向隨著調(diào)用環(huán)境的變化而變化的,而箭頭函數(shù)中的this指向是固定不變的,一直指向的是定義函數(shù)的環(huán)境。

//使用function定義的函數(shù) function foo(){console.log(this); } var obj = { aa: foo }; foo(); //Window obj.aa() //obj { aa: foo }

使用function定義的函數(shù)中this指向是隨著調(diào)用環(huán)境的變化而變化的

//使用箭頭函數(shù)定義函數(shù) var foo = () => { console.log(this) }; var obj = { aa:foo }; foo(); //Window obj.aa(); //Window

明顯使用箭頭函數(shù)的時候,this的指向是沒有發(fā)生變化的。

3.構造函數(shù)

//使用function方法定義構造函數(shù) function Person(name, age){this.name = name;this.age = age; } var lenhart = new Person(lenhart, 25); console.log(lenhart); //{name: 'lenhart', age: 25} //嘗試使用箭頭函數(shù) var Person = (name, age) =>{this.name = name;this.age = age; }; var lenhart = new Person('lenhart', 25); //Uncaught TypeError: Person is not a constructor

function是可以定義構造函數(shù)的,而箭頭函數(shù)是不行的。

4.變量提升

由于js的內(nèi)存機制,function的級別最高,而用箭頭函數(shù)定義函數(shù)的時候,需要var(let const定義的時候更不必說)關鍵詞,而var所定義的變量不能得到變量提升,故箭頭函數(shù)一定要定義于調(diào)用之前!

foo(); //123 function foo(){console.log('123'); }arrowFn(); //Uncaught TypeError: arrowFn is not a function var arrowFn = () => {console.log('456'); };

?

轉(zhuǎn)載于:https://www.cnblogs.com/ysx215/p/10774789.html

總結(jié)

以上是生活随笔為你收集整理的ES6---箭头函数()={} 与function的区别(转载)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。