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