📜  下划线.js | _.isArguments()函数(1)

📅  最后修改于: 2023-12-03 15:06:11.333000             🧑  作者: Mango

underscore.js | _.isArguments()函数

1. 简介

_.isArguments()是Underscore.js中的一个函数,在判断一个变量是否为argument类型时使用,返回值为truefalse

2. 用法
_.isArguments(object)

其中,object为需要判断的参数。

3. 示例
(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,因为它是一个数组。

4. 实现原理

Underscore.js中的_.isArguments()函数的实现原理如下:

_.isArguments = function(obj) {
  return toString.call(obj) === '[object Arguments]';
};

该函数通过toString.call(obj)来判断传入的参数obj的类型,若为[object Arguments],则返回true。其中,toStringObject原型中的一个方法,它返回调用该方法的对象的字符串表示。call则是Function原型中的一个方法,可以改变this的指向,将第一个参数作为this的指向并调用该函数(此处即为调用toString方法)。