js基礎 this的指向

2022-06-09 15:30:10 字數 1580 閱讀 4086

例子1:

function f1() 

function f2()

f1(); // window

f2(); // undefined

例子2:

var foo = 

}var fn1 = foo.fn

fn1()

// window

// undefined

例子3:

var foo = 

}foo.fn()

例子4:

var person = }}

console.log(person.brother.fn())// mike

// 最後的this指向的是brother

例子5:

var o1 = 

}var o2 =

}var o3 =

}console.log(o1.fn()) //o1

console.log(o2.fn()) //o1

console.log(o3.fn()) //undefined 此時this為window,沒有text

例子5(在例子4的基礎上加上了嚴格模式):

var o1 = 

}var o2 =

}var o3 =

}console.log(o1.fn()) //o1

console.log(o2.fn()) //o1

console.log(o3.fn()) //error

關於前兩種情況,建議參考徹底理解js中的this,可以直接理解

例子6:

const foo = 

}const bar =

foo.logname.call(bar) // mike

例子7:

function foo() 

const instance = new foo()

console.log(instance.bar) // lucas

例子8:

var div = document.queryselector('div'); 

div.addeventlistener('click',function() );

div.onclick = function()

例子9:

const foo = )}}

foo.fn() // window

例子10:

const foo = )}}

foo.fn() //

參考:

JS基礎 this指向

解析器在呼叫函式每次都會向函式內部傳遞進乙個隱含的引數,這個隱含的引數就是this,this指向的是乙個物件,這個物件我們稱為函式執行的上下文物件 根據函式的呼叫方式的不同,this會指向不同的物件 1.以函式的形式呼叫時,this永遠都是window 2.以方法的形式呼叫時,this就是呼叫方法的...

js中this的指向

lang en charset utf 8 深入理解thistitle head 它代表函式執行時,自動生成的乙個內部物件,只能在函式內部使用。隨著函式使用場合的不同,this的值會發生變化。但是有乙個總的原則,那就是this指的是,呼叫函式的那個物件。demo1 function demo1 呼叫...

js中this的指向

this的指向在函式定義的時候是確定不了的,只有函式執行的時候才能確定this到底指向誰,實際上this的最終指向的是那個呼叫它的物件 functiona a 按照我們上面說的this最終指向的是呼叫它的物件,這裡的函式a實際是被window物件所點出來的,下面的 就可以證明。var o o.fn ...