1、現有兩對象間的繼承:Object.setPrototypeOf(child,father); 2、基於現有父對象創建子對象:var child=Object.create(father,{新屬性}); 3、批量修改多個子對象的父對象:在創建第一個子對象前,修改構造函數的prototype為新對象 ...
1、現有兩對象間的繼承:Object.setPrototypeOf(child,father);
2、基於現有父對象創建子對象:var child=Object.create(father,{新屬性});
3、批量修改多個子對象的父對象:在創建第一個子對象前,修改構造函數的prototype為新對象;
4、兩種類型間的繼承:多個子類型之間包含相同屬性和方法;①抽象父類型:將相同屬性(方法)集中定義在父類型構造函數(原型對象)中;②在子類型構造函數中借用父類型:父類型構造函數.apply(this,arguments);③設置子類型原型對象繼承父類型原型對象:Object.setPrototypeOf(子類型原型對象,父類型原型對象);
5、數組API之判斷:
①查找指定元素位置:indexOf/lastIndexOf;
②Array.isArray(obj);
③判斷數組中每個元素是否符合要求:arr.every(function(val,idx,arr){return 判斷條件;});④判斷是否包含滿足要求元素:arr.some(function(val,idx,arr){return 判斷條件;});*(* 其中val:自動獲得當前元素值;idx:自動獲得當前元素位置;arr:自動獲得當前正在遍曆數組;return:判斷結果;)
6、數組API之遍歷:
①對數組中每個元素執行相同操作:arr.forEach(function(val,idx,arr){//對arr【idx】的值做修改});
②基於原數組,將每個元素加工後生成新數組:arr.map(function(val,idx,arr){//根據val修改後返回給新數組;return 新值;});
7、數組遍歷之過濾彙總:
①複製原數組中符合要求的元素組成新數組:var subArr=arr.filter(function(val,idx,arr){return 條件;});
②將數組中每個元素值彙總出一個結果:var r=arr.reduce(function(prev,val,idx,arr){return prev和val的彙總值;},開始值);*( * 其中prev為目前截止的彙總值;);
8、bind:基於現有函數,創建新函數,提前永久綁定函數中this為指定對象;
call和apply:強行借用函數,臨時替換函數中的this為指定對象(執行一個函數);
bind:創建新函數,永久綁定this和部分參數(創建新函數);