this是js中乙個難點,通常來講,this就是指向當前的執行環境,js物件可以看成全域性物件和區域性物件,當函式直接在全域性環境中執行,則this指向全域性物件
function foo()foo();//輸出window
第二種,當this在物件中的時候,this 指向的是該物件
var obj =};obj.play(); //輸出jack can play pubg
第三種,當this在建構函式中的時候,this 將會指向新的例項,此時this 會通過new 關鍵字指向例項,詳細的下回開專題講
function foo(name,value)}var foo = new foo("peter","can do it");
foo.play();//輸出 peter can do it
let a =5;let b =3;
let sub =(a,b) => a - b;
let add =(a,b) => a + b;
console.log(sub.call(add,a,b)); // 改變add的執行環境 輸出為2
this關鍵字在寫外掛程式時尤其重要,一定要反覆理解
關於 this 指向問題
一 面試題 function foo foo 全域性物件 foo.call 123 123二 面試題 const obj1 obj1.foo obj1 const fn obj1.foo fn 三 面試題 const obj2 bar obj2.foo 沿著作用域向上找最近的乙個 function ...
關於this的指向
一般來說,this指向的其實就是 包含this的函式 物件 的父元素 var user console.log user.getcount 1 var fuc user.getcount 將物件user的getcount方法賦值給變數fuc,相當於 fuc function console.log ...
關於this的指向問題
呼叫方式有以下四種只需要記住一點,this的指向取決於以什麼樣的方式去呼叫它 1 函式呼叫模式 funcction fn fn 那麼此時的this,指向的是我們的windows 2 方法呼叫模式 var obj obj.sayhi obj.sayhi 裡面的this 那麼必定指向這個 obj 3 構...