一、面試題
function foo ()
foo() // => 全域性物件
foo.call(123) // => 123
二、面試題
const obj1 =
}// obj1.foo() // => obj1
const fn = obj1.foo
fn()
三、面試題
const obj2 =
bar()
}}obj2.foo()
沿著作用域向上找最近的乙個 function(不是箭頭函式),看這個 function 最終是怎樣執行的;
this 的指向取決於所屬 function 的呼叫方式,而不是定義;
function 呼叫一般分為以下幾種情況:
作為函式呼叫,即:foo()
指向全域性物件(globalthis),注意嚴格模式問題,嚴格模式下是 undefined
作為方法呼叫,即:foo.bar()
/foo.bar.baz()
/foo['bar']
/foo[0]()
指向最終呼叫這個方法的物件
作為構造函式呼叫,即:new foo()
指向乙個新物件foo {}
引數指定成員
找不到所屬的 function,就是全域性物件
4、面試題
var length = 10
function fn ()
const obj =
}obj.method(fn, 1, 2)
關於this的指向問題
呼叫方式有以下四種只需要記住一點,this的指向取決於以什麼樣的方式去呼叫它 1 函式呼叫模式 funcction fn fn 那麼此時的this,指向的是我們的windows 2 方法呼叫模式 var obj obj.sayhi obj.sayhi 裡面的this 那麼必定指向這個 obj 3 構...
關於this指向
this是js中乙個難點,通常來講,this就是指向當前的執行環境,js物件可以看成全域性物件和區域性物件,當函式直接在全域性環境中執行,則this指向全域性物件 function foo foo 輸出window 第二種,當this在物件中的時候,this 指向的是該物件 var obj obj....
關於js中的this指向問題
1.在普通函式和全域性環境下 this指向window function demo demo console.log this x 102.建構函式 建構函式就是函式new出來的物件,所以this指向該物件 function foo var foo newfoo console.log foo.x ...