为什么Safari中的范围缩小会破坏现有代码?

时间:2013-01-03 20:02:52

标签: javascript safari

Firefox没有问题

var logger = window.console.log,  // breaks Safari but not Firefox

但Safari在我尝试使用logger()的第一个地方给出了类型错误。请注意下面的代码段。

我继续用window.console.log()替换了所有的logger(),以消除错误。

我不明白为什么Safari不喜欢它以及它为什么称它为类型错误。

错误

TypeError:输入错误

/*log
**
**
**
*/
NS.log = function (arg) {
    if (window.console) {
        var logger = window.console.log,  // breaks Safari but not Firefox
            str1 = Object.prototype.toString.call(arg);
// ... snip

1 个答案:

答案 0 :(得分:4)

这应该有效:

var logger = window.console.log.bind(window.console)