確定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對象 就可以進行使用了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章