我在所有 JavaScript 程序中都使用了标识函数:
function identity(value) {
return value;
}
原因是我经常需要区分运算符返回的基本类型( undefined
、null
、boolean
和)和对象类型(number
和) 。我觉得在这个用例中使用 indentity 函数非常简洁:string
object
function
typeof
if (new identity(value) == value); // value is of an object type
if (new identity(value) != value); // value is of a primitive type
标识函数比下面的代码更小更简单:
function isObject(value) {
var type = typeof value;
return type == "object" || type == "function";
}
然而,在阅读我的代码时,我的一个朋友抱怨说我的 hack 具有误导性,并且比上述替代方法计算成本更高。
我不想从我的任何程序中删除此功能,因为我相信这是一个优雅的 hack。再说一次,我不只是为自己编写程序。JavaScript 中的标识函数还有其他用例吗?