三者之間的共同點: 作用都是一樣的,都是為了改變 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,...