JavaScript高级4

浅拷贝和深拷贝(递归)

浅拷贝

适用场景:只能复制一维的数据形式

一维数据:例如数组的元素都是简单类型,例如对象的属性值都是简单类型

实现方式:

数组方法:slice()

数组和对象进行遍历拷贝操作

varobj={

name:'jack',

age:18

};

varobj2={};

// 封装一个用来进行对象浅拷贝的函数

// - current参数 表示被复制的对象

// - target参数 表示拷贝给那个对象

// - 使用要求:current和target必须都是对象才可以使用

functioncopy(current,target){

for(varkincurrent){

target[k]=current[k];

}

}

copy(obj,obj2);

深拷贝

适用场景:可以对复杂类型进行完全拷贝

设置时与浅拷贝的区别

需要先检测属性时是简单类型或复杂类型

对复杂类型进行具体检测:检测时数组或对象

通过递归调用,拷贝复杂类型数据

// - current参数 表示被复制的对象// - target参数 表示拷贝给那个对象// - 使用要求:current和target必须都是对象才可以使用

functioncopy(current,target){

for(varkincurrent){

// 深拷贝时,需要判断当前属性时是简单类型或复杂类型,再进行分别处理即可

// - typeof可以检测简单类型,复杂类型的结果为'object',null也为'object'

if(typeofcurrent[k]==='object'&&current[k]!==null){

// 对复杂类型属性值的处理

// console.log(current[k], '复杂类型值');

// 调用copy函数,将current[k]拷贝给target[k]

// - 对复杂类型值进行具体的数组和对象检测操作

target[k]=current[k].constructor===Array?[]:{};

copy(current[k],target[k]);

}else{

// 对简单类型属性值的处理

target[k]=current[k];

// console.log(current[k], '简单类型值');

}

}

}

jQuery插件的设置方式

学习jQuery插件的设置方式,实际上就是学习如何给jQuery对象设置方法

设置方式:

单个设置: $.fn.方法名 = function () { 实现功能的具体代码; };

多个设置:

$.fn.extend({ 设置多个方法,用来实现插件功能 })

$.fn.extend({

sayHi:function(){

console.log('sayHi');

},

sayHehe:function(){

console.log('sayHehe');

}

});

正则表达式

简介

正则表达式是一组用来进行字符串处理的工具。

创建方式:

构造函数创建方式: new RegExp('正则代码');

正则字面量形式: /正则代码/

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,537评论 0 21
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,680评论 1 32
  • 基本概念 语法区分大小写标识符注释严格模式语句 关键字和保留字 变量 数据类型typeof 操作符Undefine...
    他爱在黑暗中漫游阅读 1,391评论 0 1
  • JS基础 页面由三部分组成:html:超文本标记语言,负责页面结构css:层叠样式表,负责页面样式js:轻量级的脚...
    小贤笔记阅读 679评论 0 5
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,690评论 0 4

友情链接更多精彩内容