4 8 改變this指向的方法

2021-09-28 18:42:23 字數 1480 閱讀 4298

function fn()

// fn() //window

形式二

var odiv = document.

getelementsbytagname

('div')[

0]odiv.onclick = fn //odiv

形式三

var arr =

['a'

,'v'

,'d'

,'k'

]// call()方法 讓fn指向call

fn.call

(arr)

//指向陣列 ["a", "v", "d", "k"]

console.

log(fn)

陣列引數

function fnn

(a, b)

// odiv.onclick = function()

var obj =

fnn.

call

(obj,7,

9)//結果 'object{}' '7' '8'

fnn.

(obj,

['1'

,'4'])

//'object{}' 1' '4'

bind

// bind 用法 函式.bind(新的this指向,引數,引數,引數…) ie8及以下不支援

// 它返回的是乙個修改函式this指向的函式引用 不二次呼叫不會顯示任何東西

fnn.

bind

(obj,2,

6)//什麼都不列印

fnn.

bind

(obj,2,

6)()

//'object{} '2' '6'

fnn.

bind

(obj)(1

,2)//'object{} '1' '2'

fnn.

bind

(obj,2)

(3)//'object{} '2' '3'

注意

//注意 如果第乙個引數是null或者是undefined 則this指向window

function hh

(a) hh.

call

(null,7)

//window

hh.call

(undefined,7)

//window

hh.(null,[7

])//window

hh.(undefined,[7

])//window

hh.bind

(null,7)

()//window

hh.bind

(undefined,7)

()//window

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

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

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

1 全域性作用域 或 普通函式 的呼叫 或 定時器函式 this 指向 window console.log this function宣告函式 function fu fu 相當於 window.fu function宣告函式 賦值給變數 var fu function fu 自執行函式 func...

this指向的改變方法

第一種 call 方法 寫法 函式.call this,內容一,內容二 第乙個引數要指向的 後面的引數為函式執行的時候的實參 列子window.str window var a function fn fn.call window fn.call window window fn.call a a ...