1.全域性呼叫 函式名( ) 指向 window
2.物件呼叫 物件.函式名( ) 誰呼叫指向誰 (.前面是誰就指向誰)
3.自執行的函式 指向window
4.事件處理函式 指向事件源
5.定時器處理函式 指向事件源
6.函式定義了未呼叫的時候指向不確定
call( )
語法:
函式名.call(你要改變的函式的 this 指向, 第二個引數開始,依次是給函式傳遞的引數)
會直接把函式給呼叫
第乙個引數如果不寫或者寫乙個 null,表示 window
let a =10;
function
fn(b)
fn.call
(a,"gg");
//number 直接呼叫
語法:
陣列裡面每一項依次是給函式傳遞引數)
會直接把函式給呼叫
let a =10;
function
fn(b,c)
fn.(a,[
"bb"
,"cc"])
;//number 直接呼叫
bind()
語法:函式名.bind(你要改變的函式的 this 指向)
不會立即執行函式
返回值: 就是乙個函式(只不過是乙個被改變好了 this 指向的函式)
他對函式的引數傳遞有兩個方式
1. 呼叫返回的函式的時候傳遞
2. 直接從第二個引數開始依次傳遞
let a =10;
function
fn(b,c)
var fn1=fn.
bind
(a,"bb"
,"cc");
//返回的是改好指向的函式 並沒有呼叫fn(
);// window 原來函式的指向是不會改變的
fn1();
//number
js改變this指向的方法
語法 函式.call this,arg1,arg2,arg3,arg4 第乙個引數用來指定函式內部的this指向,後面的引數是函式執行時所需的實參。window.color red document.color yellow var s1 function changecolor changecol...
js中的this指向和改變this指向的方法
徹底理解js中this的指向,不必硬背。首先必須要說的是,this的指向在函式定義的時候是確定不了的,只有函式執行的時候才能確定this到底指向誰,實際上this的最終指向的是那個呼叫它的物件 這句話有些問題,後面會解釋為什麼會有問題,雖然網上大部分的文章都是這樣說的,雖然在很多情況下那樣去理解不會...
js中改變函式內部this指向的方法
1 call 方法呼叫乙個物件。簡單理解為呼叫函式的方式,但是它可以改變函式的 this 指向 一般應用於繼承 var o function fn a,b fn 此時的this指向的是window fn.call o,1,2 此時的this指向的是物件o,引數使用逗號隔開 經常用域陣列中 var o...