博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
确定func_1 的 this 和arguments
阅读量:527 次
发布时间:2019-03-07

本文共 2047 字,大约阅读时间需要 6 分钟。

let func_1 = function (param1, param2) {
console.log("func_1"); console.log(this); console.log(param1, param2);};let func_2 = function (func, funcTarget = {
}, paramArray = []) {
func.target = funcTarget; func.paramArray = paramArray; func.apply(func.target, func.paramArray);}func_2(func_1, {
type:1234}, [111, 555]);
-----------------------------------------------------------------------------------js数组和对象的区别:有序、无序。 对象是关联数组,就是将值与特定的对象关联在一起。当用点号运算符来存取对象属性时,属性名是用标识符表示的;当用中括号来存取对象属性时,属性名是用字符串表示的,因此可以在运行过程中动态生成字符串。-----------------------------------------------------------------------------------基本类型数据:6 引用类型数据:3等 obj arr 函数浅拷贝与深度拷贝:深拷贝,是拷贝对象各个层级的属性(concat方法与slice也存在这样的情况,他们都不是真正的深拷贝)function deepClone(obj){
let objClone = Array.isArray(obj)?[]:{
}; if(obj && typeof obj==="object"){
for(key in obj){
if(obj.hasOwnProperty(key)){
//判断ojb子元素是否为对象,如果是,递归复制 if(obj[key]&&typeof obj[key] ==="object"){
objClone[key] = deepClone(obj[key]); }else{
//如果不是,简单复制 objClone[key] = obj[key]; } } } } return objClone;} let a=[1,2,3,4], b=deepClone(a);a[0]=2;console.log(a,b);除了递归,我们还可以借用JSON对象的parse和stringifyfunction deepClone(obj){
let _obj = JSON.stringify(obj), objClone = JSON.parse(_obj); return objClone} let a=[0,1,[2,3],4], b=deepClone(a);a[0]=1;a[2][0]=1;console.log(a,b);//--JSON.stringify()函数是用来序列化对象的,无论输入什么,输出的都是字符串类型,可以按自己的需求来定制如何序列化,输出结果是怎样的格式.(这个函数可以配置不同的参数:一个参数 object{
}/ array []; 二个参数 第二个参数为函数/数组;三个参数 )bool number string 序列化过程中会转为原始值/ undefine null symbol 在序列化过程中会被忽略(在非数组对象的属性值中时)或者被转换成null(出现在数组中时) 不可枚举的属性会被忽略。JSON.parse()从一个字符串中解析出JSON对象-----------------------------------------------------------------------------------
利用JSON转换值达到存储的的方式非常好用利用json.stringify将存储对象转换成字符串,使用localStorage进行存储,.当使用localStorge将存储的东西拿出来的后,也是个字符串。 将字符串在使用JSON.parse()从一个字符串中解析出JSON对象 就可以进行使用了

转载地址:http://hasjz.baihongyu.com/

你可能感兴趣的文章