call apply bind 的區別與聯絡

2021-10-03 13:54:19 字數 888 閱讀 3042

三者之間的共同點: 作用都是一樣的,都是為了改變 this 的指向

function

fn(name,age)fn(

'張三',13

)// 呼叫結果 window 張三 13

function

person

(name,age)

let p =

newperson

('張三',13

)// 列印結果 person "張三" 13

function

fn(name,age)fn(

'張三',13

)//window 張三 13

function

person

(name,age)

let p =

newperson

('張三',13

)//person "張三" 13

bind 只是繫結 this 指向,然後返回乙個新函式,不會立即執行

bind例項

function

fn(name,age)fn(

'張三',13

)//window 張三 13

function

person

(name,age)

let p =

newperson

('張三',13

)p.fn(

)//person "張三" 13

如果bind想要在繫結時就呼叫的話

fn.

bind

(this

,name,age)()

//繫結即執行

js中call,apply,bind之間的區別

var xw var xh xw.say 複製 本身沒什麼好說的,顯示的肯定是小王 男 今年24。那麼如何用xw的say方法來顯示xh的資料呢。對於call可以這樣 xw.say.call xh 複製 複製 而對於bind來說需要這樣 xw.say.bind xh 複製 var xw var xh ...

call apply bind的使用方法和區別

call 1.改變this指向 2.執行函式 3.傳參 var obj function fun a,b fun 1,2 1,2,window fun.call obj,3,4 3,4,obj 1.改變this指向,執行函式,傳參 引數必須是陣列的形式 var obj function fun a,...

聊聊call apply bind的故事

實際上它們真正的樣子是這樣的 它們幾個的作用都是改變this的指向。bind 與另外兩個的區別則是前者改變this,不立即呼叫函式 而後者改變this,立即呼叫函式。以下例子在非嚴格模式下,注釋的是各個情況this的指向 let test test.foo test.foo.call null,1,...