js 定义一个对象并且给对象赋值方法

本文通过一个简单的JavaScript示例介绍了如何为对象赋值,并展示了如何修改对象的属性值。示例中创建了一个空对象并为其添加了'fieldid'属性,随后对该属性进行了两次赋值操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var  obj={};

obj.fieldid="12";

obj.fieldid="13"


取得属性值直接用

obj.fieldid;

### JavaScript对象赋值方式 #### 浅拷贝 浅拷贝仅复制对象的第一层属性,对于嵌套的对象或数组,则只复制其引用而非实际内容。这意味着修改子对象会影响到原始对象。 使用`Object.assign()`可以执行浅拷贝操作[^2]: ```javascript let source = {name: 'Alice', details: {age: 25}}; let target = {}; Object.assign(target, source); ``` 此方法适用于简单的对象结构,但对于多级嵌套的数据结构可能不够安全。 另一种常见的浅拷贝技术是利用扩展运算符(`...`)来合两个对象: ```javascript const originalObj = {a: 1}; const shallowCopy = {...originalObj}; ``` 这种方法同样属于浅层次的复制,在处理复杂数据时需谨慎考虑潜在的风险。 #### 深拷贝 深拷贝不仅复制顶层属性还会递归地遍历复制所有的子节点,从而确保新旧对象之间完全独立互不影响。 一种常用的实现手段是借助JSON序列化/反序列化过程完成深拷贝工作[^3]: ```javascript function deepClone(obj){ return JSON.parse(JSON.stringify(obj)); } ``` 需要注意的是这种做法无法保留某些特殊类型的成员如函数定义等。 更稳健的做法可能是编写自定义递归算法来进行彻底的深层复制[^1]: ```javascript function recursiveDeepClone(source) { if (source === null || typeof source !== 'object') return source; const result = Array.isArray(source)? [] : {}; for(let key in source){ result[key]=recursiveDeepClone(source[key]); } return result; } // 或者采用第三方库lodash下的_.cloneDeep() ``` 上述代码片段展示了两种不同的深拷贝策略及其适用场景。前者适合大多数常规情况;后者则提供了更好的兼容性和灵活性。 #### 赋值操作 最基础也是最容易理解的就是直接赋值语句`=`,它实际上不涉及任何真正的“复制”,而是让目标变量指向源变量所指代的那个内存位置上的同一份实体[^4]。 ```javascript var objA = {"key": "value"}; var objB = objA; objB.key="newValue"; console.log(objA.key); // 输出 newValue ``` 可以看到这种方式下两者共享相同的内部状态变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值