gpt4 book ai didi

javascript - .isNumber 如何在 underscore.js 中工作?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:49:28 26 4
gpt4 key购买 nike

在underscore.js中,下面的代码好像是加了_.isNumber()

  // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp.
each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp'], function(name) {
_['is' + name] = function(obj) {
return toString.call(obj) == '[object ' + name + ']';
};
});

但肯定还有其他原因,因为将此代码直接复制到 firefox 会导致它失败,因为 toString.call(5) 返回 [xpconnect wrapped native prototype] - 所以它显然在某处做其他事情 - 但我无法弄清楚是什么。

这是 firefox 中的结果示例:

http://jsbin.com/uviyaz/2/edit

最佳答案

您的 jsbin 正在显示 window.toString,其中下划线使用 Object.prototype.toString,他们在本地将其别名为 toString在他们的代码中。

参见 http://jsbin.com/uviyaz/3/edit

另见 underscore's source他们在哪里做:

  // Create quick reference variables for speed access to core prototypes.
var slice = ArrayProto.slice,
unshift = ArrayProto.unshift,
toString = ObjProto.toString,
hasOwnProperty = ObjProto.hasOwnProperty;

关于javascript - .isNumber 如何在 underscore.js 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11743722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com