确定func_1 的 this 和arguments

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和stringify
function 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对象 就可以进行使用了

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值