js改變this指向的方法

2021-10-04 22:05:40 字數 1435 閱讀 5925

語法: 函式.call(this, arg1, arg2, arg3, arg4)

第乙個引數用來指定函式內部的this指向,後面的引數是函式執行時所需的實參。

window.color =

'red'

;document.color =

'yellow'

;var s1 =

;function

changecolor()

changecolor.

call()

;//red (預設傳遞引數)

changecolor.

call

(window)

;//red

changecolor.

call

(document)

;//yellow

changecolor.

call

(this);

//red

changecolor.

call

(s1)

;//blue

eg2

var pet =

}pet.

speak

('speak');

// 結果:speak...

var dog =

pet.speak.

call

(dog,

'speak'

)//結果 speakwang

function

pet(words)

}function

dog(words)

var dog =

newdog

('wang');

dog.

speak()

;

語法: 函式.bind(this);

該方法返回乙個函式,是乙個新的函式,

this

.name=

"jack"

;var demo=}

console.

log(demo.

getname()

);//輸出rose 這裡的this指向demo

var another=demo.getname;

console.

log(

another()

)//輸出jack 這裡的this指向全域性物件

//運用bind方法更改this指向

var another2=another.

bind

(demo)

;console.

log(

another2()

);//輸出rose 這裡this指向了demo物件了;

改變JS中的this指向的方法

1.全域性呼叫 函式名 指向 window 2.物件呼叫 物件.函式名 誰呼叫指向誰 前面是誰就指向誰 3.自執行的函式 指向window 4.事件處理函式 指向事件源 5.定時器處理函式 指向事件源 6.函式定義了未呼叫的時候指向不確定 call 語法 函式名.call 你要改變的函式的 this...

this指向及改變this指向的方法

一 函式的呼叫方式決定了 this 的指向不同,但總的原則,this指的是呼叫函式的那個物件 1.普通函式呼叫,此時 this 指向 全域性物件window function fn fn 此處預設省略window 2.在嚴格模式下 use strict 為undefined.function foo...

js中改變函式內部this指向的方法

1 call 方法呼叫乙個物件。簡單理解為呼叫函式的方式,但是它可以改變函式的 this 指向 一般應用於繼承 var o function fn a,b fn 此時的this指向的是window fn.call o,1,2 此時的this指向的是物件o,引數使用逗號隔開 經常用域陣列中 var o...