
//方式一: function B(callback) { if(typeof callback === "function") { callback() ; } } //方式二: function B(callback) { if(typeof callback === "function") { callback.apply(null,arguments) ; } } //方式三: function B(callback) { if(typeof callback === "function") { callback.call(null,arguments[0],arguments[1]) ; } } 谢谢大家!
1 xpol 2016 年 8 月 11 日 via Android 好像跟 this 有关。 |
2 ms2008 2016 年 8 月 11 日 div class="reply_content">装饰器, 2 和 3 的区别就是:apply 参数是 array ; call 参数按顺序传入 |
3 q397064399 2016 年 8 月 11 日 via iPhone 看解释器吧,除了堆栈还有栈的建立退出之外,想不到能有什么区别了 |
4 sarike 2016 年 8 月 11 日 就如何传递参数方面,主要还是看应用场景。 看次问题重点还是要关注函数内 this 指向。 `callback()` 这样在 callback 内的 this 就是全局对象。 `callback.call(null)` 或者 `callback.apply(null)` 如果是非严格模式, this 也是全局对象,如果是严格模式的话, this 就是 null 了。 https://developer.mozilla.org/en-US/docs/Web/Javascript/Reference/Strict_mode |
5 just4test 2016 年 8 月 11 日 楼上说的对。 另外 1 没有参数 2 可以有任意多个参数 3 只能是两个参数 |