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

2021-10-11 07:48:45 字數 706 閱讀 8588

1-call()方法呼叫乙個物件。簡單理解為呼叫函式的方式,但是它可以改變函式的 this 指向

// 一般應用於繼承

var o =

function

fn(a, b);fn

()// 此時的this指向的是window

fn.call

(o,1,2

)//此時的this指向的是物件o,引數使用逗號隔開

// 經常用域陣列中

var o =

function

fn(a, b);fn

()// 此時的this指向的是window

fn.(o,[1

,2])

//此時的this指向的是物件o,引數使用陣列傳遞

3-bind() 方法不會呼叫函式,但是能改變函式內部this 指向,返回的是原函式改變this之後產生的新函式

// 如果只是想改變 this 指向,並且不想呼叫這個函式的時候,可以使用bind

var o =

;function

fn(a, b)

;var f = fn.

bind

(o,1,2

);//此處的f是bind返回的新函式f(

);//呼叫新函式 this指向的是物件o 引數使用逗號隔開

改變函式內部 this 指向

var o function fn a,b fn.call o,1,2 var arr 1 66,3 99,4 var max math.max.math,arr var min math.min.math,arr console.log max,min bind 方法 bind 方法不會呼叫函式。...

js中this指向與改變

下面展示一些內聯 片。a code block var foo bar 一 普通函式呼叫 指向windows function f01 f01 直接呼叫 二 構造函式呼叫 指向當前例項物件 function f02 name,age var f2 newf02 阿力 18 三 物件方法呼叫 thsi...

js中的this指向和改變this指向的方法

徹底理解js中this的指向,不必硬背。首先必須要說的是,this的指向在函式定義的時候是確定不了的,只有函式執行的時候才能確定this到底指向誰,實際上this的最終指向的是那個呼叫它的物件 這句話有些問題,後面會解釋為什麼會有問題,雖然網上大部分的文章都是這樣說的,雖然在很多情況下那樣去理解不會...