我无法在基于WebKit的浏览器中将本机代码函数用作JavaScript对象.是不是可以直接别名这些功能?
这是最容易通过示例解释的,所以这是我在Developer Tools控制台中运行的内容:
console.warn;
// Outputs:
// function warn() {
// [native code]
// }
console.warn("console.warn");
// Outputs: "console.warn"
var _c = console;
_c.warn("_c.warn");
// Outputs: "_c.warn"
var _w = console.warn;
_w("_w");
// Outputs: "TypeError: Type error" on Safari/WebKit (Mac)
// Outputs: "TypeError: Illegal invocation" on Chrome (Mac)
var _w2 = function () { console.warn.apply(console, arguments); }
_w2("_w2");
// Outputs: "w2"
Run Code Online (Sandbox Code Playgroud)
当我尝试在Safari中使用jQuery Lint时出现了这个问题; 如果window.console不存在,它使用以下方法来防止破坏:
_console = {
warn: window.console && console.warn || function(){},
...
}
_console.warn("some error");
Run Code Online (Sandbox Code Playgroud)
这是我的临时解决方法: …