舉乙個例子
function
animals()
animals.prototype =
console.
log(
'my name is '
+this
.name)}}
var dog=
newanimals()
;dog.
say(
)// my name is 旺財
但是這個時候有乙個貓
cat =
dog.say.
(cat)
// my name is 喵喵
var name =
'小王'
, age =
17var obj =
,年齡:$,從
$來,到$`
)}else
,年齡:$`
)}}}
var db =
obj.
play()
// 姓名: 小張, 年齡: 17 說明這個時候年齡的this指向window
console.
log(window.age, window.name)
// 17 小王
obj.play.
(db,
['1村'
,'2村'])
// 第乙個引數指向 姓名:唐三彩,年齡:50,從1村來,到2村
obj.play.
(db)
// 有this指向, 但是沒第二個引數, // 走play的else,但是db裡面沒有objage, 會顯示 姓名:唐三彩,年齡: undefined
obj.play.
call
(db)
// 結果同上
obj.play.
bind
(db)()
// 結果同上, 注意bind需要後面新增()
obj.play.
call
(db,
'1村'
)// 現在還是指向db內部,只傳了乙個引數 這種情況等於
obj.
play
('1村'
, undefined)
obj.play.
call
(db,
'1村'
,'2村'
)// 姓名:唐三彩,年齡:50,從1村來,到2村
Javascript中call和apply的區別
如下 function add a,b function reduce a,b add.call reduce,1,3 將add方法運用到reduce,結果為4 如下例 如下 複製 function b b window b.call window b.call a 2,3 a 再看乙個複雜的例子 ...
新手理解 apply 和 call
假設我們有乙隻喵星人 const cat can run 還可以跳 包括跳牆是可以的 jump can jump 複製 同時,它還有乙個小夥伴汪星人 const dog can run 還會吠 bark bark loudly 馬戲團的?還會做算數 count a,b 複製 不難發現,貓狗各有所長....
深入理解 call 和 apply
js中乙個主要的內容就是this的指向問題.共同之處 他們都能改變this的指向,都是在特定的作用域中呼叫函式,等於設定函式體內this物件的值,以擴充函式賴以執行的作用域。一般來說,this總是指向呼叫某個方法的物件,但是使用call 和說到他們的功能,我就拿call來舉例子吧,因為他們的功能是一...