es6的箭頭函式和es5的function函式區別
一.es6的箭頭函式
- es6箭頭函式內部沒有this,使用時會上朔尋找最近的this
- 不可以做建構函式,不能使用new命令,因為沒有this
- 函式體內沒有arguments,可以使用rest引數代替
- 不能用yield,不能使用generator函式
二.疑問
下面程式碼中的箭頭函式arrows的this指向window
let obj = {
aaa: '123',
arrows : () => {
console.log('arrows',this);
},
func : function () {
console.log('func',this);
}
}
obj.arrows(); // window
obj.func(); // obj
相關推薦
ES6中的箭頭函式和普通函式有什麼區別?
1、普通函式中的this總是指向呼叫它的那個物件, 箭頭函式沒有自己的this,他的this永遠指向其定義環境,任何方法都改變不了其指向,如call()、bind()、apply()。(正是因為它沒有this,所以也就不能用作建構函式,也沒有原型物件) 2、箭頭函式不能當作建構函
箭頭函式和普通函式有什麼區別
1.箭頭函式相當於匿名函式,是不能作為建構函式的,不能使用new 2.箭頭函式不繫結arguments,取而代之用rest引數…解決 3.箭頭函式會捕獲其所在上下文的this值,作為自己的this值。即箭頭函式的作用域會繼承自外圍的作用域。 4.箭頭函式當方法使用的時候沒有定
箭頭函式和普通函式的區別,this的指向問題
1.箭頭函式作為匿名函式,不能作為建構函式,不能使用new var B = ()=>{ value:1; } var b = new B(); //TypeError: B is not a constructor 2.箭頭函式不繫結argumen
詳解箭頭函式和普通函式的區別以及箭頭函式的注意事項、不適用場景
箭頭函式是ES6的API,相信很多人都知道,因為其語法上相對於普通函式更簡潔,深受大家的喜愛。就是這種我們日常開發中一直在使用的A
C語言中static修飾的函式和普通函式的區別
用static修飾的函式,本限定在本原始碼檔案中,不能被本原始碼檔案以外的程式碼檔案呼叫。而普通的函式,預設是extern的,也就是說,可以被其它程式碼檔案呼叫該函式。 在函式的返回型別前加上關鍵字static,函式就被定義成為靜態函式。普通 函式的定義和宣告預設情況下是extern的,但靜
ES6 箭頭(=>)函式
一、語法 1. 具有一個引數的簡單函式 var single = a => a single('hello, world') // 'hello, world' 2. 沒有引數的需要用在箭頭前加上小括號 var log = () => { ale
普通函式和建構函式的區別
普通函式和建構函式的區別 在命名規則上,建構函式一般是首字母大寫,普通函式遵照小駝峰式命名法。 在函式呼叫的時候: function fn() { } 建構函式:1. new fn( )
golang 函式以及函式和方法的區別
golang 函式以及函式和方法的區別 2016年12月11日 20:12:54 D_Guco 閱讀數:10426更多 個人分類: golang 所屬專欄: golang學習 版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https:/
Python中函式和方法的區別
在Python中函式和方法是有區別的。 區別一所處的位置:函式是直接寫檔案中而不是class中,方法是隻能寫在class中。 區別二定義的方式: 1.函式定義的方式 def關鍵字 然後接函式名 再是括號 括號裡面寫形參也可以省略不寫形參 def function
Linux 調研popen/system, 理解這兩個函式和fork的區別.
自己的總結: 1.popen是並行(最後子程序是由pclose回收),system是序列(會等待子程序做完事,然後收拾)。 2.system() 在等待命令終止時將忽略SIGINT 和SIGQUIT 訊號,同時阻塞SIGCHLD
python中的map()函式和reduce()函式的區別和用法介紹
咱們先從定義上來解釋一下這兩個函式的區別: ①從引數方面來講: map(func, *iterables)包含兩個引數,第一個是引數是一個函式,第二個是序列(列表或元組)。其中,函式(即map的第一個引
map函式和reduce函式、filter函式的區別
①從引數方面來講:map()函式: map()包含兩個引數,第一個是引數是一個函式,第二個是序列(列表或元組)。其中,函式(即map的第一個引數位置的函式)可以接收一個或多個引數。reduce()函式:reduce() 第一個引數是函式,第二個是 序列(列表或元組)。但是,其
【matlab】mod函式和rem函式的區別
mod函式用於取模。語法形式為M = mod(X, Y)。舉例說明: mod(20, 3)ans = 2; mod(20, -3)ans = -1; mod([1 : 5], 3)ans = 1 2 0 1 2; mod(magic(3), 3)ans = 2 1
JS中建構函式和普通函式有什麼區別
//建立函式 function Person(name,age,job){ this.name=name; this.age=age; this.job=job; this.sayName=function(){ alert(this.name);
scala函式和方法的區別
方法 函式 定義 是組成類的一部分 是繼承了這些 Trait 的類的物件 實現方式 def fun_name(引數列表)={方法體} val fun&
python中range函式和xrange函式的區別
Range: range([start,] stop[, step]),根據start與stop指定的範圍以及step設定的步長,生成一個序列。 Xrange: 用法與range完全相同,所不同的是
rand函式和random函式的區別
原型: int rand(void); //返回一個隨機數0 ~ pow(2, sizeof(int))-1 long int random(void); //返回一個隨機數0 ~ pow(2, si
Python中range函式和arange函式的區別
主要是返回值和建立型別不一樣,還有就是要不要匯入numpy包range(start, end, step),返回一個list物件,起始值為start,終止值為end,但不含終止值,步長為step。只能建立int型list。arange(start, end, step),與r
匿名函式,閉包 匿名函式和普通函式的區別 什麼是閉包?閉包的優缺點?
小程式 function 同時也支援以下的語法(匿名函式(變數裡有函式),閉包(函式裡有函式)等): var a = function (x) { return function () { return x;} } var b = a(100); console.log( 100 === b() )
pandas 中有關agg函式和apply函式的區別
在利用python進行資料分析 這本書中其實沒有明確表明這兩個函式的卻別,而是說apply更一般化. 其實在這本書的第九章‘陣列及運算和轉換’點到了兩者的一點點區別:agg是用來聚合運算的,所謂的聚合當然是合成的成分比較大些,這一節開頭就點到了:聚合只不過是分組運算的其中一