首页
mac
it
登录
6mi
u
盘
搜
搜 索
it
bind
bind
mac
2024-03-25
44
// 分析:这里的bind方法会把它的第一个实参绑定给f函数体内的this,所以里的this即指向{x:1}对象;
// 从第二个参数起,会依次传递给原始函数,这里的第二个参数2即是f函数的y参数;
// 最后调用m(3)的时候,这里的3便是最后一个参数z了,所以执行结果为1+2+3=6
// 分步处理参数的过程其实是一个典型的函数柯里化的过程(Curry)
function
f
(
y
,
z
)
{
return
this
.
x
+
y
+
z
;
}
var
m
=
f
.
bind
(
{
x
:
1
}
,
2
)
;
console
.
log
(
m
(
3
)
)
;
// 6
// 分析:直接调用a的话,this指向的是global或window对象,所以会报错;
// 通过bind或者call方式绑定this至document对象即可正常调用
var
a
=
document
.
write
;
a
(
'hello'
)
;
// error
a
.
bind
(
document
)
(
'hello'
)
;
// hello
a
.
call
(
document
,
'hello'
)
;
// hello
转载请注明原文地址: https://mac.8miu.com/read-487261.html
最新回复
(
0
)