我遇到了一种情况,我需要使用.call()或.apply()调用另一个函数,如下所示:
function b() {
alert(arg);
}
Run Code Online (Sandbox Code Playgroud)
然后
function a(arg) {
b.call();
}
a(123);
Run Code Online (Sandbox Code Playgroud)
函数b被调用,但不能访问arg.没关系,我可以通过范围..是吗?
function a(arg) {
b.call(this);
}
a(123);
Run Code Online (Sandbox Code Playgroud)
仍然没有 - 我无法从函数b 访问arg.我该怎么做?
更新:我不想修改b功能:-)
您仍然需要通过call(单独)或apply(作为数组)传递参数:
function a(arg1, arg2, arg3) {
b.call(this, arg1, arg2, arg3);
// or
b.apply(this, arguments)
// or
b.apply(this, [arg1, arg2, arg3]);
}
Run Code Online (Sandbox Code Playgroud)
当然,没有任何关于你的情况建议实际使用 call或apply:只是自己调用函数.
function a(arg) {
b(arg);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
121 次 |
| 最近记录: |