call,apply ,bind區別與聯絡

2021-10-08 09:19:06 字數 745 閱讀 5787

var a =

functionfn(

)fn.

call

(a))

//呼叫fn函式並且this指向a物件

fn.(a)

)//呼叫fn函式並且this指向a物件

fn.bind

(a))

//呼叫fn函式並且this指向a物件

當然call主要作用是用來繼承的,繼承一些父類建構函式的屬性和方法

function

father

(name, age, ***)

}function

son(name, age, ***)

var son =

newson

('張三',18

,'男'

)var son =

newson([

'張三',18

,'男'])

console.

log(son)

;//son

var o=

(function()

).bind

(o)(

)

像這種不需要呼叫的自執行函式,並且需要改變函式內部的this指向的就可以通過bind來改變。

總結

bind傳參和call一樣,但是不會呼叫函式,通常用於自執行函式改變this指向。

call,apply,bind使用區別

doctype html html lang en head meta charset utf 8 meta name viewport content width device width,initial scale 1.0 title document title head body scrip...

call apply bind用法區別

call call 方法呼叫乙個函式,其具有乙個指定的this值和分別地提供的引數 引數的列表 方法類似,只有乙個區別,就是call 方法接受的是乙個包含多個引數的陣列。語法 fun.call thisarg arg1 arg2 引數 arg1,arg2,方法呼叫乙個函式,其具有乙個指定的this值...

call apply bind的用法以及區別

通過 可以看出區別 var name window var age 10 function fun1 name var person fun1.call person,小明 對於bind來說,用法更加的靈活 var fun2 fun1.bind person,小明 fun2 fun1 看一下在控制台...