js中如何复制⼀个对象并获取其所有属性和属性对应的值在js中如何复制⼀个对象,例如如下⼀个js对象。
如果知道这个对象的所有属性⾃然就可以重新new⼀个,然后对每个属性赋值,就可以做到,但如果不知道呢?如何创建⼀个内容相同的对象呢?
复制代码代码如下:
var obj={ colkey: "col", colsinfo: "NameList" }
最简单就是使⽤for in,
例如obj2就拥有了和obj完全相同的属性
复制代码代码如下:
var obj2=new Object();
for(var p in obj)
{
var name=p;//属性名称
var value=obj[p];//属性对应的值
obj2[name]=obj[p];
}
其实这种⽅式有⼀定的限制,关键是js中for in有⼀定限制,并不会遍历对象的所有属性,只会遍历可枚举的属性,由js核⼼定义的⽅法都是不可枚举的,例如tostring(),但代码中定义的属性都是可枚举的(可以通过特殊定义为不可枚举的)。因此这个⽅法就够⽤了。
⼀个对象是否可以进⾏for in穷举,我们可以通过propertyIsEnumerable属性来判断,说明如下:propertyIsEnumerable 属性
返回 Boolean 值,指出所指定的属性是否为⼀个对象的⼀部分以及该属性是否是可列举的。
js原型和原型链的理解
object.propertyIsEnumerable(proName)
参数
object
必选项。⼀个对象。
proName
必选项。⼀个属性名称的字符串值。
说明
如果 proName 存在于 object 中且可以使⽤⼀个 For…In 循环穷举出来,那么 propertyIsEnumerable 属性返回 true。如果object 不具有所指定的属性或者所指定的属性不是可列举的,那么 propertyIsEnumerable 属性返回 false。典型地,预定义的属性不是可列举的,⽽⽤户定义的属性总是可列举的。
propertyIsEnumerable 属性不考虑原型链中的对象。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。