javascript - jQuery.extend 一个对象,它是否存在?

标签 javascript jquery

问题

我在不可靠的不同地方声明父对象的某些属性,因此在声明这些属性时很难预测父对象是否存在。无论发生在何处,我都需要创建父对象(如果它不存在),但如果存在则不重新声明。

示例

假设我在某处发生了这个 JavaScript:

membership = {
    id: 5,
    name: "John"
}

在代码的另一点(可能在上面的代码块之前或之后),我有这样的东西:

membership.level = "gold";

我基本上需要能够让 membership.level 创建 membership 对象(如果不存在的话),但如果它存在,只需添加 level 属性。同样,第一个代码块需要以这样一种方式工作:如果 membership 已经存在,它只添加 idname 属性。

到目前为止我得到的代码

我的解决方案没有奏效,但我想您会明白我要做什么。这是我尝试过的:

第一个区 block

membership = $.extend(membership, {
    id: 5,
    name: "John"
});

第二 block

membership = $.extend(membership , {
    level: "gold"
});

当未定义成员资格时,上述有时仍然会出错。有没有办法按照我描述的方式做到这一点?提前致谢。

最佳答案

var membership = $.extend({}, membership , {
    level: "gold"
});

JSFiddle:http://jsfiddle.net/gJ9d4/

关于javascript - jQuery.extend 一个对象,它是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21417401/

相关文章:

php - 如何保存ajax数据而不因点击后退按钮而丢失?

javascript - 尝试从目标事件获取数据时在 IE8 中出现问题

javascript - 导航栏和 AJAX 加载

jquery - 在模态窗口中显示 html 文本(不解析)

javascript - .slider::-webkit-slider-thumb 在 javascript 中需要

javascript - 弹出一个 html 页面或窗口来显示响应

php - 您如何使用 PHP、JS 和/或 REST API 验证用户是否关注您?

javascript - 使用 JavaScript 在 SortableJS 可排序列表上模拟拖放

javascript - 如何在fancybox上播放音频文件?

javascript - 外部文件与内部对象的 GeoJSON 投影