当前位置: 首页 > news >正文

长沙百度网站制作/素材网

长沙百度网站制作,素材网,那个网站做租赁好,电商erp开发中,打断对象间的引用关系,只想下个副本的情况无处不在,clone一个对象就在所难免了。 JavaScript中,简单的方法就是用JSON函数,将对象stringify成字符串,再parse成一个新对象。要么就是从网上搜个代码&a…

  开发中,打断对象间的引用关系,只想下个副本的情况无处不在,clone一个对象就在所难免了。

  JavaScript中,简单的方法就是用JSON函数,将对象stringify成字符串,再parse成一个新对象。要么就是从网上搜个代码,开源社区里面clone的代码还是有不少的。

  代码虽然可以找得到,但,东西永远是别人的,动手学着码永远是个不变的主题。

  自己写了两个克隆的函数:

  cloneOwn:克隆自定义对象的自有属性,不包括继承的属性,属性可以是基本数据类型和数组,自定义的对象,可以制定要克隆的属性名称列表。

  cloneArray: 克隆数组,数组内的元素可以是对象,基本类型。

  以下代码在node.js环境中调试通过。

//第一个参数是被克隆的对象,第二个参数是需要克隆的属性列表
function
cloneOwn() {var obj = arguments[0];if (typeof obj === 'undefined' || obj === null)return {};if (typeof obj !== 'object')return obj;
//第二个参数是属性名称列表,就采用该列表进行刷选
//否则就克隆所有属性
var attrs = arguments[1];var enable_spec_attr = true;if (!(attrs instanceof Array)) {//console.log(attrs);attrs = obj;enable_spec_attr = false;}var result = {};var i;for (i in attrs) {attr = enable_spec_attr? attrs[i]: i;//console.log(attr);if (obj.hasOwnProperty(attr)) {if (obj[attr] instanceof Array) {result[attr] = cloneArray(obj[attr]);}else if (typeof obj[attr] === 'object') {result[attr] = cloneOwn(obj[attr]);} else {result[attr] = obj[attr];}}}return result; }
//克隆数组
function
cloneArray(array) {if (typeof array === 'undefined' || array === null)return [];if (!(array instanceof Array))return [];result = [];var i;for(i in array) {if (typeof array[i] !== 'object') {result[i] = array[i];continue;}//clone objectresult[i] = cloneOwn(array[i]);}return result; }

调用

1.常规克隆自定义对象:

var a = {name:'frank',age:20
};var b= cloneOwn(a);

2.指定克隆的属性

var a = {name:'frank',age:20,address:'any where'
};

var b = cloneOwne(a, ['name', 'age']);

3.克隆内含有数组属性的自定义对象

var a = {name: 'kxh',age: 20,books: ['hai','ho','ali'],likes: [{wname: 'kaili', wage: 81, fav: "aaaaa"},{wname: 'seli', wage: 82, fav: "bbb"},{wname: 'ailun', wage: 83, fav: "ccc"},]
};

var b = cloneOwne(a);

4.克隆数组,内含有自定义对象

var a = [{name:'frank',age:20},{name:'leon',age:30}
];

var b = cloneArray(a);

 

上面的代码还是有很多问题的,比如,内置对象的克隆就存在点问题,例如datatime类型。

问题管问题,这样一个学习过程也是要有的。

^-^。

 

转载于:https://www.cnblogs.com/kongxianghai/archive/2013/06/06/3120360.html

http://www.lbrq.cn/news/971407.html

相关文章:

  • 网站关键字优化地点/市场营销方案范文
  • 协会网站建设目的/头条新闻今日头条
  • 最专业的做网站公司/每日新闻摘抄10一15字
  • wordpress 菜单 分隔/semseo是什么意思
  • 手工网站大全做椅子套/企业如何网络推广
  • 幼儿园网站建设方案/关键词小说
  • 在线商城网站怎么做/佛山快速排名seo
  • wordpress去除主题加密页脚/洛阳网站建设优化
  • 网站不备案可以用吗/nba今日数据
  • 深圳网站制作的/百度seo排名培训优化
  • 网站建设中faqs的意思/网销是什么工作好做吗
  • wordpress 5.1.1主题/seo网络培训学校
  • 浪漫做爰网站/今天特大新闻
  • 企业电子商务网站建设/优化大师怎么下载
  • 做外贸独立网站必须要有备案么/网站发布流程
  • 手机网站定制 杭州/成免费crm软件有哪些优点
  • 网络求职做阿姨哪个网站好/seo包年优化
  • 标志在线设计网站/广东seo
  • 响应式网站建设报价单/杭州seo教程
  • 网站开发代做/技能培训班有哪些课程
  • 实验报告设计方案/站长工具seo综合查询源码
  • 安阳网站建设哪里最好/软件测试培训
  • 网站建设网店名字/自助搭建平台
  • 网站群建设论文/seo优化招商
  • 网站换模板影响/朋友圈网络营销
  • 无锡网站制作 高端网站定制/地推放单平台
  • 大连网站建设蛇皮果/seo投放
  • 施工企业资质审查系统/北京百度seo工作室
  • 沈阳做企业网站/谷歌推广
  • 免费做公司网站/沧州seo公司
  • 【MAC】nacos 2.5.1容器docker安装
  • 解决“Windows 无法启动服务”问题指南
  • Anspire Open暑期上新季 - 第二弹Anspire Browser Agent,开启云端自动化新纪元
  • redisson tryLock
  • Rust基础[part4]_基本类型,所有权
  • 测试tcpdump,分析tcp协议