js 常見方法

繼承

es6:

class People {
                constructor(name) {
                    this.name = name;
                }
            }
class Man extends People{
                constructor(name) {
                    super(name)
                }
            }
let man = new Man('admin')

寄生組合繼承:

            function People(name) {
                this.name = name
            }
            function Man(name){
                People.call(this,name)
            }
            (function(){
                let Super = {}
                Super.prototype = People.prototype;
                Man.prototype = new Super()
            })()
            Man.prototype.constructor = Man;

new

? 創(chuàng)建一個空對象淘衙,將它的引用賦給 this劫侧,繼承函數(shù)的原型柿祈。
? 通過 this 將屬性和方法添加至這個對象
? 最后返回 this 指向的新對象丑婿,也就是實例(如果沒有手動返回其他的對象)

            function People(name) {
                this.name = name
            }
            People.prototype.say = function() {
                console.log(this.name);
            }
            function _new(constructor, ...args) {
                let temp = Object.create(constructor.prototype);
                let instance = constructor.apply(temp, args);
                return Object.prototype.toString.call(instance) === '[object object]' ? instance : temp;
            }

深拷貝

通過JSON對象實現(xiàn)深拷貝 :

let deepData = JSON.parse(JSON.stringify(data))

通過Object.assign()拷貝(淺拷貝)

let deepData = Object.assign({},data)

遞歸實現(xiàn)

function deepClone(obj){
  let objClone =  Array.isArray(obj) ? [] : {};
  if (obj && typeof obj === 'object') {
    for(let key in obj){
      if (obj[key] && typeof obj[key] === 'object'){
        objClone[key] = deepClone(obj[key]);
      }else{
        objClone[key] = obj[key]
      }
    }
  }
  return objClone;
}

數(shù)組去重

ES6set去重

function uniq(arr){
  var a=new Set(arr);
  var b=[...a];
    return b
}
function uniq(arr){
    var temp = []; //一個新的臨時數(shù)組
    for(var i = 0; i < array.length; i++){
        if(temp.indexOf(arr[i]) == -1){   //建議用includes(ES6)
            temp.push(arr[i]);
        }
    }
    return temp;
}

防抖

防抖在指定時間間隔里再次調(diào)用函數(shù)究西,會清除定時器帝嗡,重新計時绸栅,直到在最新的計時時間間隔里沒有調(diào)用函數(shù)螺男,才會執(zhí)行定時器里的函數(shù)

function debounce(fn,delay){
    var timer
    return function(...args){
        if(timer){
            clearTimeout(timer)
        }
        timer = setTimeout(()=>{
            fn.apply(this,args)
        }, delay)
    }
}

節(jié)流

指定時間間隔后會執(zhí)行一次函數(shù)洛勉,不會清除定時器而重新計時

function throttle(fn,delay){
    let timer
    let flag = true
    return function(...args){
        if(!flag){
            return
        }
        flag = false
        timer = setTimeout(()=>{
            fn.apply(this,args)
            flag = true
        },delay)
    }
}

sleep

const sleep = time => {
 return new Promise(resolve => setTimeout(resolve,time)
 ) } 
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末粘秆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子收毫,更是在濱河造成了極大的恐慌攻走,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件此再,死亡現(xiàn)場離奇詭異昔搂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)引润,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門巩趁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人淳附,你說我怎么就攤上這事议慰。” “怎么了奴曙?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵别凹,是天一觀的道長。 經(jīng)常有香客問我洽糟,道長炉菲,這世上最難降的妖魔是什么堕战? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮拍霜,結(jié)果婚禮上嘱丢,老公的妹妹穿的比我還像新娘。我一直安慰自己祠饺,他們只是感情好越驻,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著道偷,像睡著了一般缀旁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上勺鸦,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天并巍,我揣著相機(jī)與錄音,去河邊找鬼换途。 笑死懊渡,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的怀跛。 我是一名探鬼主播距贷,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吻谋!你這毒婦竟也來了忠蝗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤漓拾,失蹤者是張志新(化名)和其女友劉穎阁最,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骇两,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡速种,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了低千。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片配阵。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖示血,靈堂內(nèi)的尸體忽然破棺而出棋傍,到底是詐尸還是另有隱情,我是刑警寧澤难审,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布瘫拣,位于F島的核電站,受9級特大地震影響告喊,放射性物質(zhì)發(fā)生泄漏麸拄。R本人自食惡果不足惜派昧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拢切。 院中可真熱鬧蒂萎,春花似錦、人聲如沸淮椰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽实苞。三九已至,卻和暖如春烈疚,著一層夾襖步出監(jiān)牢的瞬間黔牵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工爷肝, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猾浦,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓灯抛,卻偏偏與公主長得像金赦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子对嚼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 內(nèi)置類型 JS 中分為七種內(nèi)置類型夹抗,七種內(nèi)置類型又分為兩大類型:基本類型和對象(Object)。 基本類型有六種:...
    C楚輝H閱讀 1,715評論 0 2
  • 1纵竖、深淺拷貝 (1) 定義 淺拷貝: 將原對象或原數(shù)組的引用直接賦給新對象漠烧,新數(shù)組,新對象/數(shù)組只是原對象的一個引...
    北冥有魚_425c閱讀 1,510評論 1 22
  • 1. JS創(chuàng)建變量的5種方式靡砌?varletconstfunctionexport/import 2. var已脓,le...
    Angel_6c4e閱讀 813評論 0 13
  • 內(nèi)置類型 JS中分為七種內(nèi)置類型,其中內(nèi)置類型又分為兩大類型: 基本類型 對象(Object) 基本類型有六種: ...
    小白摘葡萄閱讀 687評論 0 2
  • 1通殃、離職多久了 2度液、大約多久到崗 3、離這里多遠(yuǎn) 4画舌、會考慮搬家嗎 5堕担、公司會加班 6、為什么要離職 7骗炉、你們這個...
    臨淵鯨落閱讀 1,212評論 0 1