es6 箭頭函式的this 指向問題
箭頭函式體內的this,就是定義時,函式所在的物件,而不是呼叫時所在的物件。
var foo = () => {
console.log(this.id);
}
var id = 1;
foo(); // 輸出1 // this 的指向一直是指向 window
foo.call({ id: 2 }); // 輸出1 // this 的指向一直是指向 window
普通函式體內的this,指向呼叫時所在的物件。
function foo() { console.log(this.id); } var id = 1; foo(); // 輸出1 this指向 window foo.call({ id: 2 }); // 輸出2 這裡是{ id: 2 }呼叫 foo,所以 this的指向是 { id: 2 }這個物件,因此 console.log(this.id); 的輸出值是 2
相關推薦
【ES6】兩個例子明白箭頭函式this指向問題
前言:es6箭頭函式沒出現之前,this的指向不是函式被建立時繫結,而是被怎麼樣的方式呼叫時繫結的。而箭頭函式剛好相反,箭頭函式的this指向是函式被建立時繫結的,它的指向就是當前詞法作用域中的this
typescript 屬性預設值使用箭頭函式 this指向問題
今天注意到前端小夥伴用react 定義component class的方法的時候是通過箭頭函式的方式,表示好奇。 class Test extends React.Component { public fun1 = () => { console.log(this); };
js---ES6 箭頭函式的this指向
普通函式的this指向看的是: 1.呼叫者 2.有沒有call/apply改變this指向 3.new改變AO中的this為一個空的物件 4.什麼都沒有,單純呼叫函式,this就是window,在自己的AO中。 箭頭函式的this指向:箭頭函式在定義時執行器上下文的this的指向(不具有塊
es6 箭頭函式的this 指向問題
箭頭函式體內的this,就是定義時,函式所在的物件,而不是呼叫時所在的物件。 var foo = () => { console.log(this.id); } var id = 1; foo(); // 輸出1 // this 的指向一直是指向 window foo.call(
ES6箭頭函式修復ES5中this指向問題
長期以來,ES5中this物件一直的指向一個令人頭痛的問題,在物件方法中使用此,必須非常小心例如: class Animal { constructor(){ this.type = 'animal' } says(say){ setTim
ES6---箭頭函式與function定義函式有什麼區別?在箭頭函式中,this指向,建構函式,變數提升是如何表現的?
簡潔 ///function定義函式 function aaa(a,b){ return a+b; } ///箭頭函式定義函式 var aaa=(a,b)=>{return a+b
ES6箭頭函式中的this繫結問題
關於this指向問題的討論一直是學習js不可忽視的重要部分,那些一個又一個圍繞this挖的筆試坑,彷彿永遠也填不完 var obj={ fn:function(){ console.log(this); } } obj.fn();//object
同樣不太好懂的箭頭函式this的指向
1、先來看一個例子吧:(輸出什麼呢?) var foo={ foo:function(){ console.log(this); }, b:()=>{console.log(this)} } foo.foo(); foo.b(); 答:fo
解析ES6箭頭函式中的this
ES6中新增了箭頭函式這種語法,箭頭函式以其簡潔性和方便獲取this的特性,接下來通過本文給大家分享ES6箭頭函式中的this,寫的十分的全面細緻,具有一定的參考價值,對此有需要的朋友可以參考學習下。如有不足之處,歡迎批評指正。 簡要介紹:箭頭函式中的this,指向與一般fun
深入理解ES6箭頭函式的this以及各類this面試題總結
ES6中新增了箭頭函式這種語法,箭頭函式以其簡潔性和方便獲取this的特性,俘獲了大批粉絲兒它也可能是面試中的寵兒, 我們關鍵要搞清楚 箭頭函式和普通函式中的this一針見血式總結:普通函式中的this:1. this總是代表它的直接呼叫者(js的this是執行上下文), 例
ES6 箭頭函式中的 this?(臨時性儲存)
是否區域性(Lexical)? 包括我在內的許多人,都會這麼描述箭頭函式裡 this 的行為:區域性的 this。什麼意思呢? <body> <div id="demo" onclick="foo()" > 點我</div&
es6箭頭函式以及模板字串的拼接
es6箭頭函式: //1.具有一個簡單引數的函式 var single=a=>a console.log(single('hello word')); //2.沒有引數的需要在箭頭前加上小括號 var logs=()=>{ console.log('這個是沒有
es6箭頭函式學習
1.具有一個簡單引數的函式 var single=a=>a console.log(single('hello word')); 2.沒有引數的需要在箭頭前加上小括號 var logs=()=>{ console.log('這個是沒有引數的函式'); } 3.多個引數需
ES6--箭頭函式建議
箭頭函式適合於無複雜邏輯或者無副作用的純函式場景下,例如用在map、reduce、filter的回撥函式定義中; 不要在最外層定義箭頭函式,因為在函式內部操作this會很容易汙染全域性作用域。最起碼在箭頭函式外部包一層普通函式,將this控制在可見的範圍內; 如開頭所述,箭頭函
ES6 箭頭函式 =>
定義一個巢狀的箭頭函式tmp1 let address = [ {first: '健康',last:'生活'} ]; const tmpl = addrs => ` <table> ${addrs.map(addr => `
ES6:箭頭函式
作用: 定義匿名函式 基本語法: 沒有引數: () => console.log('xxx') 一個引數: (i) => i+2 大於一個引數: (i,j) => i+j 函式
es6箭頭函式中return的用法
最近在專案中頻繁的使用了箭頭函式,在使用的過程中對return關鍵字用法比較困惑,下面對其使用方法進行記錄: 如果箭頭函式的程式碼塊部分多於一條語句,就要使用大括號將它們括起來,並且使用return關鍵字返回 例子: const foo = (a, b) =
5. 箭頭函式_this 指向_es6 常用語法
1. 箭頭函式 函式的簡寫方式 () => {} 只有一個引數時,可以省略() ---- x => {} 只有一條語句時,可以省略{},此時這點語句的結果會作為函式的返回值返回 () => console.log('hello'); 特點: 箭頭函式沒有自己
從一道面試題看ES6箭頭函式
前幾天頭條面試碰到了這樣一道面試題,讓我寫出每行程式碼的執行結果: var f = x => x; f(1); //return 1 var f = x => {x}; f(1); //function(x)={x}; var f = x =
ES6箭頭函式基本用法
ES6箭頭函式基本用法 ``` window.onload = function(){ alert(abc); } //箭頭函式 window.onload = ()=>{ alert("abc"); } // 如果只有一個引數圓括號可以省 let play = function(num){ ale