javascript – jQuery $.extend() – 如果第一个对象不存在,如何不添加新成员?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – jQuery $.extend() – 如果第一个对象不存在,如何不添加新成员?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含942字,纯文字阅读大概需要2分钟。
内容图文
我在使用jQuery扩展javascript对象时偶然发现了一个小问题.执行时
var item = $.extend(options.itemDefaults, item);
options.itemDefaults使用已在item中的属性进行扩展,结果将传递给item.到现在为止还挺好.
但是下次执行此行时,options.itemDefaults具有该项具有的所有属性值,而不是原始默认值.我的默认设置丢失了!
我意识到我可以简单地将默认对象存储在一个临时变量中,而是扩展临时变量,但它似乎有点冗长.有没有办法做我正在做的事情(用提供的覆盖默认值,没有提供值时采用默认值,但不改变默认对象)没有绕道?
更新:似乎这并不像我希望的那样容易.当我做
var defaults = options.itemDefaults;
var $item = $.extend(defaults, { attributeModel: options.attributeModel }, item);
defaults = undefined
在每次迭代中,我仍然在options.itemDefaults上的item中添加属性!我该如何解决这个问题?
解决方法:
尝试,
var item = $.extend(true, {}, options.itemDefaults, item);
我们使用空对象{}作为目标,因此默认值不会被篡改.
options.itemDefaults的属性和item将被复制到空对象中.
内容总结
以上是互联网集市为您收集整理的javascript – jQuery $.extend() – 如果第一个对象不存在,如何不添加新成员?全部内容,希望文章能够帮你解决javascript – jQuery $.extend() – 如果第一个对象不存在,如何不添加新成员?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。