跟进如何检查对象是否是 JavaScript 中的参数对象?
给出的解决方案都不能在 IE8 中工作。有什么方法可以检测对象是否是 IE8 中的参数对象?
跟进如何检查对象是否是 JavaScript 中的参数对象?
给出的解决方案都不能在 IE8 中工作。有什么方法可以检测对象是否是 IE8 中的参数对象?
@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