js中如何复制一个对象并获取其所有属性和属性对应的值


Posted in Javascript onOctober 24, 2013

在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 值,指出所指定的属性是否为一个对象的一部分以及该属性是否是可列举的。
object.propertyIsEnumerable(proName)
参数
object
必选项。一个对象。
proName
必选项。一个属性名称的字符串值。
说明
如果 proName 存在于 object 中且可以使用一个 For…In 循环穷举出来,那么 propertyIsEnumerable 属性返回 true。如果 object 不具有所指定的属性或者所指定的属性不是可列举的,那么 propertyIsEnumerable 属性返回 false。典型地,预定义的属性不是可列举的,而用户定义的属性总是可列举的。
propertyIsEnumerable 属性不考虑原型链中的对象。

Javascript 相关文章推荐
js表数据排序 sort table data
Feb 18 Javascript
javascript 打印页面代码
Mar 24 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
Sep 02 Javascript
ashx文件获取$.ajax()方法发送的数据
May 26 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
Aug 11 Javascript
Angular CLI 安装和使用教程
Sep 13 Javascript
详解Vue2.0组件的继承与扩展
Nov 23 Javascript
简述vue路由打开一个新的窗口的方法
Nov 29 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
Mar 19 jQuery
Node.js使用supervisor进行开发中调试的方法
Mar 26 Javascript
JS学习笔记之数组去重实现方法小结
May 29 Javascript
vue实现动态表格提交参数动态生成控件的操作
Nov 09 Javascript
js switch case default 的用法示例介绍
Oct 23 #Javascript
js setTimeout opener的用法示例详解
Oct 23 #Javascript
利用jQuery实现可输入搜索文字的下拉框
Oct 23 #Javascript
jquery模拟SELECT下拉框取值效果
Oct 23 #Javascript
js、css、img等浏览器缓存问题的2种解决方案
Oct 23 #Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
Oct 23 #Javascript
3分钟写出来的Jquery版checkbox全选反选功能
Oct 23 #Javascript
You might like
PHPMyAdmin 快速配置方法
2009/05/11 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
php获取json数据所有的节点路径
2015/05/17 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
php文件上传类的分享
2017/07/06 PHP
PHP中number_format()函数的用法讲解
2019/04/08 PHP
JavaScript 实现类的多种方法实例
2013/05/01 Javascript
javascript判断变量是否有值的方法
2015/04/20 Javascript
js修改onclick动作的四种方法(推荐)
2016/08/18 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
Javascript之图片的延迟加载的实例详解
2017/07/24 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
JS将时间秒转换成天小时分钟秒的字符串
2019/07/10 Javascript
基于JavaScript实现轮播图效果
2021/01/02 Javascript
[28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
2020/10/31 DOTA
Python深入学习之闭包
2014/08/31 Python
python 接口_从协议到抽象基类详解
2017/08/24 Python
python中abs&map&reduce简介
2018/02/20 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
python3实现随机数
2018/06/25 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
在Python中使用MySQL--PyMySQL的基本使用方法
2019/11/19 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
2020/09/03 Python
美国知名的女性服饰品牌:LOFT(洛芙特)
2016/08/05 全球购物
历史系毕业生自荐信
2013/10/28 职场文书
企业活动策划方案
2014/06/02 职场文书
煤矿安全协议书
2014/08/20 职场文书
见习报告怎么写
2014/10/31 职场文书
2014年乡镇卫生院工作总结
2014/11/24 职场文书
2014年底个人工作总结
2015/03/10 职场文书
幼儿园工作总结2015
2015/04/01 职场文书
婚礼迎宾词大全
2015/08/10 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
MySQL 数据 data 基本操作
2022/05/04 MySQL