第188天:extend拷贝创建对象的原理

简介: 一、拷贝创建对象的原理 1 //拷贝创建对象核心代码 2 function extend(target,source) { 3 //遍历对象 4 for(var i in source){ 5 target[i] = so...

一、拷贝创建对象的原理

 1  //拷贝创建对象核心代码
 2     function extend(target,source) {
 3         //遍历对象
 4         for(var i in source){
 5             target[i] = source[i];
 6         }
 7         return target;
 8     }
 9 
10     //游戏随机生成名字
11        var boy = {
12         name:'无忌'
13         ,image:'男性头像'
14         ,age:20
15         ,sex:'男'
16     };
17 
18     var gril = {
19         name:'风晴雪'
20         ,age:18
21         ,image:'女性头像'
22         ,sex:'女'
23     };
24 
25 
26     var zuixiake = extend({}, boy);
27     zuixiake.name='醉侠客';
28     console.log(zuixiake.name);//醉侠客
29     console.log(zuixiake.sex);//

二、拷贝进阶用法

 1 <script>
 2 
 3     //extend2实现的功能:extend(target,obj1,obj2,obj3)
 4 
 5    function extend () {
 6         var key,i = 0,len = arguments.length,target = null,copy;
 7         if(len === 0){
 8             return;
 9         }else if(len === 1){
10             target = this;
11         }else{
12             i++;
13             target = arguments[0];
14         }
15         for(; i < len; i++){
16             for(key in arguments[i]){
17                 copy = arguments[i][key];
18                 target[key] = copy;
19             }
20         }
21         return target;
22     }
23 
24     function extend2(){
25         for (var p in source) {
26             if (source.hasOwnProperty(p)) {
27                 target[p] = source[p];
28             }
29         }
30 
31         return target;
32     }
33 
34     //游戏随机生成名字
35     var boy = {
36         name:'无忌'
37         ,image:'男性头像'
38         ,age:20
39         ,sex:'男'
40     };
41 
42     //技能名称,等级,伤害值,需要的魔法
43     var technology = {tname:'亡灵复活',tlevel:10,tstrength:3000,tmagic:30};
44 
45     var shenqi = {sname:'霜之哀伤',slevel:30,sstrength:3000};
46     //当这个人有了穿上盔甲,圣衣,六神合体,戴上魔法戒指之后,自动也拥有一个技能
47 
48     //第一种用法
49     var zuixiake = extend({}, technology,shenqi);
50     zuixiake.name='醉侠客';
51     console.log(zuixiake.name);//醉侠客
52     console.log(zuixiake.tname);//亡灵复活
53     console.log(zuixiake.sname);//霜之哀伤
54 
55 
56     //第二种用法
57     extend(boy,technology,shenqi);
58     console.log(boy.name);//无忌
59     console.log(boy.tname);//亡灵复活
60     console.log(boy.sname);//霜之哀伤
61 
62 </script>

 

相关文章
|
安全 算法 数据安全/隐私保护
黑客克星!Python加密艺术大公开,AES、RSA双剑合璧,守护你的数字世界
在这个数据泛滥的时代,数字世界既充满了知识,也潜藏安全隐患。Python 作为强大的编程语言,以其独特的加密技术为我们的信息安全保驾护航。本文将介绍 AES 和 RSA 这两种加密算法,揭示它们如何协同工作,保护你的数字世界。AES(高级加密标准)以其高效、安全著称,能将敏感信息转化为难以破解的乱码。Python 的 `pycryptodome` 库让 AES 加密变得简单易行。然而,AES 面临密钥分发难题,此时 RSA(非对称加密算法)便大显身手,通过公钥加密、私钥解密的方式确保密钥传输安全。AES 与 RSA 在 Python 中交织成一道坚不可摧的防护网,共同守护我们的数字世界。
334 0
|
设计模式 安全 Go
Go中按次序交替打印1212...,你知道它背后的设计模式吗
Go中按次序交替打印1212...,你知道它背后的设计模式吗
|
2天前
|
云安全 人工智能 自然语言处理
AI说的每一句话,都靠谱吗?
阿里云提供AI全栈安全能力,其中针对AI输入与输出环节的安全合规挑战,我们构建了“开箱即用”与“按需增强”相结合的多层次、可配置的内容安全机制。
|
6天前
|
存储 人工智能 安全
AI 越智能,数据越危险?
阿里云提供AI全栈安全能力,为客户构建全链路数据保护体系,让企业敢用、能用、放心用
|
8天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
3天前
|
消息中间件 安全 NoSQL
阿里云通过中国信通院首批安全可信中间件评估
近日,由中国信通院主办的 2025(第五届)数字化转型发展大会在京举行。会上,“阿里云应用服务器软件 AliEE”、“消息队列软件 RocketMQ”、“云数据库 Tair”三款产品成功通过中国信通院“安全可信中间件”系列评估,成为首批获此认证的中间件产品。此次评估覆盖安全可信要求、功能完备性、安全防护能力、性能表现、可靠性与可维护性等核心指标,标志着阿里云中间件产品在多架构适配与安全能力上达到行业领先水平。
301 192