摘要:感覺這個題目涉及的基礎(chǔ)知識內(nèi)容比較多,故分享出來,后面會詳細(xì)介紹數(shù)據(jù)類型的文章,歡迎關(guān)注。實現(xiàn)一個函數(shù),可以對中的種主要的數(shù)據(jù)類型包括進行值復(fù)制。
感覺這個題目涉及的基礎(chǔ)知識內(nèi)容比較多,故分享出來,后面會詳細(xì)介紹數(shù)據(jù)類型的文章,歡迎關(guān)注。
實現(xiàn)一個函數(shù)clone,可以對JavaScript中的5種主要的數(shù)據(jù)類型(包括Number、String、Object、Array、Boolean)進行值復(fù)制。
/** * 對象克隆 * 支持基本數(shù)據(jù)類型及對象 * 遞歸方法 */ function clone(obj) { var o; switch (typeof obj) { case "undefined": break; case "string": o = obj + ""; break; case "number": o = obj - 0; break; case "boolean": o = obj; break; case "object": // object 分為兩種情況 對象(Object)或數(shù)組(Array) if (obj === null) { o = null; } else { if (Object.prototype.toString.call(obj).slice(8, -1) === "Array") { o = []; for (var i = 0; i obj.length; i++) { o.push(clone(obj[i])); } } else { o = {}; for (var k in obj) { o[k] = clone(obj[k]); } } } break; default: o = obj; break; } return o; }
如果你有高級前端的水平,這個時候就應(yīng)該寫出下面的代碼
Object.prototype.clone = function(){ var o = this.constructor === Array ? [] : {}; for(var e in this){ o[e] = typeof this[e] === "object" ? this[e].clone() : this[e]; } return o; }
基礎(chǔ)知識還需要牢固,要不怎么能寫出這樣高端的寫法呢?哈哈?
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/88314.html
摘要:直接開始題目是厲害了說句實話開發(fā)中誰寫成這樣保證會被打死。不過面試就是面試,有面試官的考量點。官方是這么說的。結(jié)果完美,不過小姐姐的意思是數(shù)組的方法會自動觸發(fā)數(shù)組的。 直接開始題目是 if(a==1 && a==2 && a==3){ alert(厲害了) } 說句實話開發(fā)中誰寫成這樣保證會被打死。 不過面試就是面試,有面試官的考量點。 我理解的點有兩個 1、隱式類型轉(zhuǎn)換 先說...
摘要:為此決定自研一個富文本編輯器。例如當(dāng)要轉(zhuǎn)化的對象有環(huán)存在時子節(jié)點屬性賦值了父節(jié)點的引用,為了關(guān)于函數(shù)式編程的思考作者李英杰,美團金融前端團隊成員。只有正確使用作用域,才能使用優(yōu)秀的設(shè)計模式,幫助你規(guī)避副作用。 JavaScript 專題之惰性函數(shù) JavaScript 專題系列第十五篇,講解惰性函數(shù) 需求 我們現(xiàn)在需要寫一個 foo 函數(shù),這個函數(shù)返回首次調(diào)用時的 Date 對象,注意...
摘要:也給當(dāng)初出入迷宮的我不小考驗,一道題目可以引發(fā)許多思考,今天寫下的只是今時今日的想法,到未來也許還有別樣的看法。對于回調(diào)函數(shù),可以對其傳入三個參數(shù)分別是當(dāng)前元素,元素索引,調(diào)用的數(shù)組。 [1,2,3].map(parseInt) 這道JS題目,相信大家并不會陌生。也給當(dāng)初出入JS迷宮的我不小考驗,一道題目可以引發(fā)許多思考,今天寫下的只是今時今日的想法,到未來也許還有別樣的看法。...
摘要:返回值返回值根據(jù)傳入的參數(shù)類型和規(guī)則的不同,返回的內(nèi)容不同,但總體來說,它是返回一個對象,而不是索引,如果沒匹配到任何符合條件的字符串,則返回。 本文發(fā)布在我的博客一道小小的題目引發(fā)對javascript支持正則表達式相關(guān)方法的探討許可協(xié)議: 署名-非商業(yè)性使用-禁止演繹 4.0 國際 轉(zhuǎn)載請保留原文鏈接及作者。 以前對于正則是非常懼怕的,因為看不懂和學(xué)不會。但最近項目中頻繁的...
摘要:題目原題目來源于一個網(wǎng)友的問答補充代碼我有個我有個分析題目希望生成一個新的構(gòu)造函數(shù),繼承于。盡量不要更改題目表達出希望有方法實現(xiàn)構(gòu)造函數(shù)繼承,又需要原型繼承。的指向顯然要改成指向子類構(gòu)造函數(shù)中的。 題目 原題目來源于一個網(wǎng)友的問答 var A = function() { this.name = apple; } A.prototype.getName = function()...
閱讀 2932·2021-11-23 09:51
閱讀 3178·2021-11-12 10:36
閱讀 3215·2021-09-27 13:37
閱讀 3168·2021-08-17 10:15
閱讀 2596·2019-08-30 15:55
閱讀 2757·2019-08-30 13:07
閱讀 800·2019-08-29 16:32
閱讀 2655·2019-08-26 12:00