/**
* Converts object to a true array.
*/
makeArray: function(o) {
if (o === null || o === undefined) return [];
if (S.isArray(o)) return o;
// The strings and functions also have 'length'
if (typeof o.length !== 'number' || typeof o === 'string' || S.isFunction(o)) {
return [o];
}
// ie 不支持用 slice 转换 NodeList, 降级到普通方法
if (o.item && S.UA.ie) {
var ret = [], i = 0, len = o.length;
for (; i < len; ++i) {
ret[i] = o[i];
}
return ret;
}
// array-like
return AP.slice.call(o);
}
以前看到类似功能的函数时总是不明白 为什么大家都要用判断一下然后还用slice(直接for效率更高,而且还省两行代码)
后来再群里问
LC,简单的四个字"向前兼容"
后来想想有时候自己的思想总是被束缚着,向前兼容这个思想也经常会用到,但是之前每次看上面这个问题时,总是想着”效率“,于是就看不到其它的东西了
思考问题时不要总是朝一个方面想,换个方向,答案说不定就出来了
分享到:
相关推荐
### 向前兼容与向后兼容的概念解析 在软件开发领域中,“向前兼容”与“向后兼容”是两个非常重要且容易被混淆的概念。本文将详细介绍这两个概念,并通过实例帮助读者更好地理解它们的区别。 #### 一、向前兼容...
本话题主要聚焦于SQL Server 2005及其后的版本,尤其是对于DTS(Data Transformation Services)功能的向前兼容性。 DTS是SQL Server早期版本中的一个关键组件,用于数据导入、导出以及转换任务。在SQL Server 2005...
旧版应用的 Android M 权限和向前兼容性一个示例应用程序,用于演示 Android M 中引入的新运行时权限模型介绍MyContacts 应用程序将查询 ContactsProvider 组件以检索所有存储的联系人。 它需要 READ_CONTACTS 权限...
简单AWS 围绕各种 Amazon Web Service API 的精简、简单、向前兼容的 Ruby 包装器。生命尽头早在 2011 年我开始这个项目时,Ruby 中的 AWS 库的状态就很糟糕。 Amazon 的官方 SDK 已经很多年没有接触过了,而且 Fog ...
4. **向后兼容**:尽管主要目的是向前兼容新格式,但此兼容包也支持将旧格式的文件保存为新格式,以便与使用新版本Office的用户共享。 **FileFormatConverters.exe**:这是兼容包的主要安装程序,包含了用于转换...
尽管每个新版本通常会引入一些不向前兼容的特性,但Microsoft通常会确保基本的文件格式和核心功能在不同版本间能够相互操作,以方便用户交流和协作。 1. 文件格式兼容性: - **.docx、.xlsx、.pptx**:从2007版...
Polyfill是一种向前兼容的方法,用于向旧版浏览器添加新特性。例如,可以使用Modernizr这样的库来检测浏览器是否支持某个特性,并在不支持的情况下自动加载Polyfill脚本来实现该特性。 #### 五、使用Filter属性 IE...
UTF-8的优点在于其向前兼容性和空间效率,尤其是对于主要使用ASCII字符的文本。 GBK和GB2312是中国特定的字符集,主要用于简体中文。GB2312是GBK的前身,包含了6763个汉字和其他符号,而GBK扩展了GB2312,增加了更...
同时,这个核心包也展示了社区对旧版本框架的支持和持续优化,确保了技术栈的稳定性和向前兼容性。在使用这个核心包时,开发者应该仔细阅读文档,按照指示进行操作,并进行适当的测试,以确保其在具体项目中的适用性...
libQtSerialization库是Qt扩展,它使以向前和向后兼容的方式序列化数据变得非常容易。 该库由两个方面组成:帮助您序列化数据的QWriter和帮助您反序列化数据的QReader。 作家直言不讳。 几乎所有您需要做的就是调用...
针对这一问题,文章提出了一种基于服务质量(QoS)的WiMAX向前兼容LTE的上行调度算法。 【算法设计】 该算法的核心是通过多类映射规则来为WiMAX和LTE服务流提供公平且高效的资源分配。它依据服务流的优先级动态...
对于现代Web开发而言,随着IE系列浏览器逐渐退出历史舞台,开发者更多地转向使用Polyfill和Shim等技术来确保代码的向前兼容性,同时减少对老旧浏览器的支持,专注于提升用户体验和性能优化。然而,在处理遗留项目或...
首先Ext4是可以向前兼容的,也就是说Ext3文件系统可以挂载为Ext4文件系统使用,不过为了充分利用Ext4的优势,必须实现文件系统的迁移,以转换和利用新的Ext4格式。 Ext3文件系统可以在线转换为Ext4,但这样并不能...
为了向前兼容,Ucenter已经将所有依赖于mysql_connect()的代码替换为mysqli或PDO扩展的相应函数,如mysqli_connect()或PDO::__construct()。这些新函数提供了更好的性能、安全性和面向对象的接口,更适应现代PHP开发...
REM(Relative Em Unit)是CSS3中引入的一个长度单位,用于表示相对于根元素(通常是html...这个库是CSS3 REM单位向前兼容的重要工具,尤其对于需要在老旧浏览器中保持设计一致性的项目来说,它具有很高的实用价值。
除了处理当前浏览器的兼容性问题外,向前兼容(支持旧版浏览器)与向后兼容(适应未来浏览器的新特性)同样重要。向前兼容相对简单,主要是确保现有代码能在新版本浏览器中正常运行。而向后兼容则更加困难,因为它...
向后兼容意味着新版本软件能与旧版本的数据或硬件协同工作,而向前兼容则保证用户能够使用未来版本的软件,而不必担心兼容问题。多版本测试是确保这些兼容性的关键步骤,需要对所有可能的软件组合进行测试。 可安装...
Navicat Premium 是一个数据库开发工具,允许您从单个应用程序...2019.09.28日发布,该版本支持最新的 Navicat全系列12.1.23版本,向前兼容,如果自动升级安装后无法生效,可以删除navicat后,更换一个路径就可以用了。
2. 版本控制:每个Schema都有版本号,新版本的Schema必须兼容旧版本,以确保向前兼容性。 3. 兼容性检查:在注册新Schema时,Registry会进行兼容性检查,防止不兼容的Schema进入系统。 4. 缓存:Registry可以缓存...