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 相关文章推荐
javascript 硬盘序列号+其它硬件信息
Dec 23 Javascript
js中substr,substring,indexOf,lastIndexOf的用法小结
Dec 27 Javascript
jquery中使用循环下拉菜单示例代码
Sep 24 Javascript
JS对象与json字符串格式转换实例
Oct 28 Javascript
js随机生成字母数字组合的字符串 随机动画数字
Sep 02 Javascript
理解javascript封装
Feb 23 Javascript
jQuery UI插件实现百度提词器效果
Nov 21 Javascript
基于Bootstrap的标签页组件及bootstrap-tab使用说明
Jul 25 Javascript
JS实现select选中option触发事件操作示例
Jul 13 Javascript
菊花转动的jquery加载动画效果
Aug 19 jQuery
React中使用UEditor百度富文本的方法
Aug 22 Javascript
Node.js JSON模块用法实例分析
Jan 04 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
php实现的MySQL通用查询程序
2007/03/11 PHP
PHP 函数执行效率的小比较
2010/10/17 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
PHP实现百度人脸识别
2019/05/06 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
基于jquery的图片的切换(以数字的形式)
2011/02/14 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
jquery设置元素的readonly和disabled的写法
2013/09/22 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
使用Web Uploader实现多文件上传
2016/06/08 Javascript
jquery日历插件e-calendar升级版
2016/11/10 Javascript
详谈ES6中的迭代器(Iterator)和生成器(Generator)
2017/07/31 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
vue组件的写法汇总
2018/04/12 Javascript
Vue批量图片显示时遇到的路径被解析问题
2019/03/28 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
jQuery插件实现图片轮播效果
2020/10/19 jQuery
vue实现禁止浏览器记住密码功能的示例代码
2021/02/03 Vue.js
Python中类型关系和继承关系实例详解
2015/05/25 Python
Python 爬虫学习笔记之正则表达式
2016/09/21 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
巴西美妆购物网站:Kutiz Beauté
2019/03/13 全球购物
个人简历中自我评价
2014/02/11 职场文书
初中作文评语大全
2014/04/23 职场文书
人代会标语
2014/06/30 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
三峡人家导游词
2015/01/31 职场文书
PHP正则表达式之RCEService回溯
2022/04/11 PHP