我制作了一个更准确的 typeof
函数,并希望像默认的 typeof
运算符一样使用它。目前,我像其他函数一样调用我的 typeOf()
函数:typeOf("foo")
,但是是否可以获取函数参数而不在其括号中定义它们?就像typeof
-运算符一样。
默认:typeof“foo”===“string”
所需:typeOf“foo”===“string”
我尝试过定义并覆盖全局变量,可以工作,但是,这并不是真正的解决方案:
window.typeOf = "foo";
(function(window) {
window.typeOf = (Object.prototype.toString.call(window.typeOf).match(/\[object (.+)\]/)[1] + "").toLowerCase();
}(this));
console.log(typeOf); // "string"
最佳答案
...is it possible to get the function arguments without defining them in its parens?
不,不是。这需要 JavaScript 允许您创建一个新的运算符,而不是函数,这不是该语言所具有的功能。 (有两个函数 - toString
和 valueOf
- 可以作为表达式的一部分在对象上隐式调用,但这对您没有帮助。)
关于parameters - 是否可以以某种方式创建类似 typeof 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15622170/