4

跟进如何检查对象是否是 JavaScript 中的参数对象?

给出的解决方案都不能在 IE8 中工作。有什么方法可以检测对象是否是 IE8 中的参数对象?

4

1 回答 1

4

@Rocket 和 @cliffs_of_insanity 是正确的,我最初一定是测试错了。

总之,我到达了:

var isArguments = function(obj) {
    return (obj != null) && // since undefined == null
        ((Object.prototype.toString.call(obj) == '[object Arguments]') ||
            (!!obj.callee)); // fixes for ie8 non-strict-mode
};

有关参数对象历史及其工作原理的更多信息:https ://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments/callee

于 2012-05-18T01:52:05.710 回答