【发布时间】:2013-03-25 18:32:37
【问题描述】:
我做了一个更准确的typeof-function,想像默认的typeof-operator一样使用它。目前,我像其他所有函数一样调用我的typeOf()-函数:typeOf("foo"),但是是否可以在不在其括号中定义它们的情况下获取函数参数?就像typeof-operator 一样。
默认: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"
【问题讨论】:
-
您要求函数的行为与运算符相同(
typeof是一元运算符)。不幸的是,这在 Javascript 中是不可能的,因为运算符是语言的一部分,你不能定义自己的。 -
@FrédéricHamidi 好的,这是 javascript 中的坏蛋部分 ;-) 谢谢!
-
你可以使用coffeescript :)
标签: parameters parameter-passing javascript invocation