最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js中如何復(fù)制一個(gè)對(duì)象并獲取其所有屬性和屬性對(duì)應(yīng)的值

 更新時(shí)間:2013年10月24日 09:26:04   作者:  
如果知道這個(gè)對(duì)象的所有屬性自然就可以重新new一個(gè),然后對(duì)每個(gè)屬性賦值,就可以做到,但如果不知道呢?如何創(chuàng)建一個(gè)內(nèi)容相同 的對(duì)象呢?下面有個(gè)不錯(cuò)的示例,大家可以看看
在js中如何復(fù)制一個(gè)對(duì)象,例如如下一個(gè)js對(duì)象。

如果知道這個(gè)對(duì)象的所有屬性自然就可以重新new一個(gè),然后對(duì)每個(gè)屬性賦值,就可以做到,但如果不知道呢?如何創(chuàng)建一個(gè)內(nèi)容相同 的對(duì)象呢?
復(fù)制代碼 代碼如下:

var obj={ colkey: "col", colsinfo: "NameList" }

最簡(jiǎn)單就是使用for in,

例如obj2就擁有了和obj完全相同的屬性
復(fù)制代碼 代碼如下:

var obj2=new Object();
for(var p in obj)
{
var name=p;//屬性名稱
var value=obj[p];//屬性對(duì)應(yīng)的值
obj2[name]=obj[p];
}

其實(shí)這種方式有一定的限制,關(guān)鍵是js中for in有一定限制,并不會(huì)遍歷對(duì)象的所有屬性,只會(huì)遍歷可枚舉的屬性,由js核心定義的方法都是不可枚舉的,例如tostring(),但代碼中定義的屬性都是可枚舉的(可以通過(guò)特殊定義為不可枚舉的)。因此這個(gè)方法就夠用了。

一個(gè)對(duì)象是否可以進(jìn)行for in窮舉,我們可以通過(guò)propertyIsEnumerable屬性來(lái)判斷,說(shuō)明如下:
propertyIsEnumerable 屬性
返回 Boolean 值,指出所指定的屬性是否為一個(gè)對(duì)象的一部分以及該屬性是否是可列舉的。
object.propertyIsEnumerable(proName)
參數(shù)
object
必選項(xiàng)。一個(gè)對(duì)象。
proName
必選項(xiàng)。一個(gè)屬性名稱的字符串值。
說(shuō)明
如果 proName 存在于 object 中且可以使用一個(gè) For…In 循環(huán)窮舉出來(lái),那么 propertyIsEnumerable 屬性返回 true。如果 object 不具有所指定的屬性或者所指定的屬性不是可列舉的,那么 propertyIsEnumerable 屬性返回 false。典型地,預(yù)定義的屬性不是可列舉的,而用戶定義的屬性總是可列舉的。
propertyIsEnumerable 屬性不考慮原型鏈中的對(duì)象。

相關(guān)文章

最新評(píng)論

武穴市| 达尔| 叙永县| 湘潭县| 门头沟区| 武定县| 枣阳市| 湘西| 宝鸡市| 安乡县| 上饶县| 苏尼特右旗| 丹巴县| 章丘市| 称多县| 乌鲁木齐市| 正镶白旗| 长寿区| 望都县| 平邑县| 津南区| 江北区| 涟水县| 嘉义县| 博爱县| 黔西| 沛县| 且末县| 德安县| 邛崃市| 同心县| 四会市| 红河县| 阿克陶县| 远安县| 洛宁县| 林州市| 延吉市| 白沙| 炉霍县| 芦山县|