第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>

 

相关文章
|
12月前
|
安全 算法 数据安全/隐私保护
黑客克星!Python加密艺术大公开,AES、RSA双剑合璧,守护你的数字世界
在这个数据泛滥的时代,数字世界既充满了知识,也潜藏安全隐患。Python 作为强大的编程语言,以其独特的加密技术为我们的信息安全保驾护航。本文将介绍 AES 和 RSA 这两种加密算法,揭示它们如何协同工作,保护你的数字世界。AES(高级加密标准)以其高效、安全著称,能将敏感信息转化为难以破解的乱码。Python 的 `pycryptodome` 库让 AES 加密变得简单易行。然而,AES 面临密钥分发难题,此时 RSA(非对称加密算法)便大显身手,通过公钥加密、私钥解密的方式确保密钥传输安全。AES 与 RSA 在 Python 中交织成一道坚不可摧的防护网,共同守护我们的数字世界。
260 0
|
设计模式 安全 Go
Go中按次序交替打印1212...,你知道它背后的设计模式吗
Go中按次序交替打印1212...,你知道它背后的设计模式吗
|
5天前
|
人工智能 运维 安全
|
3天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
10天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
848 109
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
482 12