JS中this指向問題,加經典前端面試題

2021-09-23 22:31:34 字數 429 閱讀 4622

直接上**,先自己在心中給出答案

class foo 

b = function()

c = ()=>

}let f = new foo();

let d = ;

f.a();

f.b();

f.c();

d.a();

d.b();

d.c();

正確答案是foo,foo,foo,bar,bar,foo

當然這面的前三個沒什麼好說的,this指向的都是foo這個類,但是問題就在於d例項中的方法,普通函式中this指向,誰呼叫指向誰,這裡面是d呼叫的方法,所以this指向d自身,前兩個打出來的都是d中的name屬性,而在es6的箭頭函式中沒有this物件,所以c方法中的this指的是原來的foo類,所以打出來的是foo;

JS中this指向問題

解析器在呼叫函式時,每次都會向函式內部傳遞進乙個隱含的引數,這個隱含的引數就是this,this指向的是乙個物件,這個物件我們稱之為函式執行的上下文物件,根據函式的呼叫方式不同,this會指向不同的物件.簡單來說一下函式中this指向問題,1.this是什麼?任何函式本質上都是通過某個物件來呼叫的,...

JS中this指向問題

函式內部的this之和函式的呼叫方式有關,和函式的定義方式沒有關係functionfn fn windowvar obj obj.fn obj functionfn 或者可以這樣寫自呼叫函式 functionfn div document.queryselector div div.onclick ...

JS中this指向問題

與其它語言相比,js的this關鍵字的指向稍微有點差別。一 全域性環境 首選我們要明確一點,在全域性環境中 在任意函式體外部 無論是嚴格模式還是非嚴格模式,this都指向window。下面,我們來通過幾個例子理解一下。示例1 console.log this 這裡的this在全域性域下,指向wind...