📅  最后修改于: 2023-12-03 15:06:11.333000             🧑  作者: Mango
_.isArguments()
是Underscore.js中的一个函数,在判断一个变量是否为argument
类型时使用,返回值为true
或false
。
_.isArguments(object)
其中,object
为需要判断的参数。
(function() {
console.log(_.isArguments(arguments)); // true
})(1, 2, 3);
console.log(_.isArguments([1, 2, 3])); // false
在上述示例中,_.isArguments(arguments)
为true
,因为arguments
是一个函数内部的特殊对象,它与Array
类似,但它拥有不同的方法和属性。而对于[1, 2, 3]
,_.isArguments([1, 2, 3])
则为false
,因为它是一个数组。
Underscore.js中的_.isArguments()
函数的实现原理如下:
_.isArguments = function(obj) {
return toString.call(obj) === '[object Arguments]';
};
该函数通过toString.call(obj)
来判断传入的参数obj
的类型,若为[object Arguments]
,则返回true
。其中,toString
是Object
原型中的一个方法,它返回调用该方法的对象的字符串表示。call
则是Function
原型中的一个方法,可以改变this
的指向,将第一个参数作为this
的指向并调用该函数(此处即为调用toString
方法)。