Par*_*lia 3 javascript code-design underscore.js
我注意到UnderScoreJS具有许多围绕本机Javascript函数的包装函数。
举个例子:
_.isArray, _.isBoolean, _.isNaN?
Run Code Online (Sandbox Code Playgroud)
有什么理由吗?还是在使用underscoreJS库时仅仅是为了确保代码一致性而已,还是无论如何都只是增强了这些功能?
例如,_。isArray函数可以简化为:
_.isArray = nativeIsArray || function(obj) {
return toString.call(obj) === '[object Array]';
};
Run Code Online (Sandbox Code Playgroud)
任何的想法?
这是因为这些功能并非在所有浏览器中都存在。例如,尝试Array.isArray使用IE8,您将找不到它。
如今,现代浏览器越来越了解ECMAScript标准,并且越来越需要这种“垫片”,但并非总是如此!
在大多数Javascript框架中,您会发现类似的看似多余的函数,以确保它们的任何功能都不会引发异常,因为给定浏览器中缺少该功能。
还有一些类似的功能_.each(obj, func)可以对类似数组的对象起作用,而您需要做的却没有任何问题Array.prototype.forEach.call(obj, func)(与arr.forEach(func)真正的数组相比)。因此,这forEach是确保一开始就存在的另一个好处。
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |