Underscore.js 做了这件很酷的事情。这是他们修改后的代码。
NS.as(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp'], function(name) {
NS['is' + name] = function(obj) {
return toString.call(obj) == '[object ' + name + ']';
};
});
这些函数是在第一次创建时创建的,然后可供开发人员使用。
NS.isFunction()
NS.isString(),
etc.
但是,我想要这个值
'[object ' + name + ']';
硬编码,以便不会针对每次调用进行计算。
我该怎么做?
最佳答案
您可以在创建函数之前创建字符串,并将其放入局部变量中。由于它是函数中的局部变量,因此每次迭代都会有自己的值:
NS.as(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp'], function(name) {
var objName = '[object ' + name + ']';
NS['is' + name] = function(obj) {
return toString.call(obj) == objName;
};
});
关于javascript - 性能 - 在初始化时完成字符串连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15913888/