摘要:對(duì)象篇簡(jiǎn)介本身就是一個(gè)函數(shù),可用于工具函數(shù),也可以是用于構(gòu)造對(duì)象的函數(shù)其次可以添加屬性和方法方法又可以分為靜態(tài)方法定義在自身上的和實(shí)例方法定義在原型上的工具函數(shù)作為工具函數(shù)參數(shù)可以是任意數(shù)據(jù)類(lèi)型,將其轉(zhuǎn)為對(duì)象如果參數(shù)是空,,則將其轉(zhuǎn)換為空對(duì)
對(duì)象篇 Object簡(jiǎn)介
Object本身就是一個(gè)函數(shù),可用于工具函數(shù),也可以是用于構(gòu)造對(duì)象的函數(shù);其次Object可以添加屬性和方法;方法又可以分為靜態(tài)方法(定義在自身上的)和實(shí)例方法(定義在Object原型上的)
工具函數(shù)作為工具函數(shù):參數(shù)可以是任意數(shù)據(jù)類(lèi)型,將其轉(zhuǎn)為對(duì)象;如果參數(shù)是空,null,undefined,則將其轉(zhuǎn)換為空對(duì)象;如果參數(shù)是原始值,則返回包裝類(lèi)對(duì)象;如果參數(shù)是對(duì)象則返回原對(duì)象;
利用這一特點(diǎn)可以構(gòu)建一個(gè)判斷參數(shù)是否為對(duì)象的函數(shù)
function isObject(target) { return target === Object(target); }作為構(gòu)造函數(shù)
作為構(gòu)造函數(shù):生成一個(gè)對(duì)象,在下篇中著重介紹
var obj = new Object(); //{}部分靜態(tài)方法
Object的靜態(tài)方法:
keys()與hasOwnPropertyNames(),其都是將對(duì)象的自身屬性(不包含繼承部分)以數(shù)組形式返回;其唯一的區(qū)別是:對(duì)于不可枚舉的屬性,keys不會(huì)輸出,而hasOwnPropertyNames則會(huì)輸出,例如數(shù)組又一個(gè)不可枚舉的length屬性
var arr = [1, 2, 3]; //var arr = new Object("123"); 輸出也是一樣的 Object.keys(arr); //["1", "2", "3"] Object.getOwnPropertyNames(arr); //["1", "2", "3", "length"]
借keys方法可以輸出對(duì)象屬性的個(gè)數(shù),Object.keys(obj).length
剩余方法中篇記錄
部分實(shí)例方法
Object的實(shí)例方法:
Object.prototype.valueOf()
valueOf()返回對(duì)象的值,默認(rèn)返回對(duì)象本身
var obj = {a : 1}; obj.valueOf() === obj; //true
Object.prototype().toString()
toString()返回類(lèi)型字符串,默認(rèn)值為[object Object],第一個(gè)object為類(lèi)型,第二個(gè)是構(gòu)造函數(shù)Object,我們可以利用第二個(gè)構(gòu)造函數(shù)來(lái)判斷數(shù)據(jù)的類(lèi)型
Object.prototype.toString.call([]); //[object Array] Object.prototype.toString.call({}); //[object Object] Object.prototype.toString.call(123); //[object Number]
改進(jìn)成函數(shù):
var type = function (target) { var str = Object.prototype.toString.call(target); return str.slice(8, -1); }; ["Null", "String", "Boolean", "Number", "Undefined", "Object", "Function", "Array", "Window" , "RegExp", "Date"].forEach(function (elem) { type["is" + elem] = function (target) { return type(target) == elem; } }); type.isNumber(123); //true type.isObject({}); //true
Object.prototype.toLocaleString()與toString()結(jié)果一樣,不同的是對(duì)于數(shù)組,日期,數(shù)字類(lèi)型的的包裝對(duì)象,返回地方化的字符串輸出格式
Object.prototype.hasOwnProperty(),用于判斷參數(shù)是否為對(duì)象的屬性,返回一個(gè)布爾值
var obj = {a : 1}; obj.hasOwnProperty("a"); //true
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/98132.html
摘要:簡(jiǎn)析簡(jiǎn)介,是一種數(shù)據(jù)格式而不是編程語(yǔ)言,它和并沒(méi)有從屬關(guān)系,任何編程語(yǔ)言都可以使用語(yǔ)法規(guī)則分為三類(lèi)簡(jiǎn)單值與語(yǔ)法相同,可以在中表示字符串,數(shù)值,布爾值和,但是其不支持?jǐn)?shù)值字符串對(duì)象鍵值和鍵名都得用雙引號(hào)數(shù)組解析和序列化目標(biāo)對(duì)象,過(guò)濾器,字符串 JSON簡(jiǎn)析 1.簡(jiǎn)介 JSON,是一種數(shù)據(jù)格式而不是編程語(yǔ)言,它和JavaScrip并沒(méi)有從屬關(guān)系,任何編程語(yǔ)言都可以使用JSON; 2.語(yǔ)法...
摘要:源碼學(xué)習(xí)之用于合并對(duì)象,可選擇是否深復(fù)制。盡管官方文檔明確指出第一個(gè)參數(shù)是的調(diào)用情況并不支持,但是這個(gè)版本的源碼中,判斷第一個(gè)參數(shù)的類(lèi)型雖有限定是類(lèi)型,但卻未對(duì)其值真假加以限定。調(diào)用方式源碼和指向同一個(gè)函數(shù),在函數(shù)內(nèi)部,對(duì)調(diào)用情況進(jìn)行區(qū)分。 jQuery源碼學(xué)習(xí)之extend $.extend用于合并對(duì)象,可選擇是否深復(fù)制。使用時(shí),第一個(gè)參數(shù)為合并后的對(duì)象。如果要進(jìn)行深拷貝,則參數(shù)1為...
摘要:繼承是面向?qū)ο缶幊陶Z(yǔ)言中的一個(gè)重要的概念,繼承可以使得子類(lèi)具有父類(lèi)的屬性和方法或者重新定義追加屬性和方法等。但是在中沒(méi)有類(lèi)的概念,是基于原型的語(yǔ)言,所以這就意味著對(duì)象可以直接從其他對(duì)象繼承。 繼承是面向?qū)ο缶幊陶Z(yǔ)言中的一個(gè)重要的概念,繼承可以使得子類(lèi)具有父類(lèi)的屬性和方法或者重新定義、追加屬性和方法等。但是在Javascript中沒(méi)有類(lèi)的概念,是基于原型的語(yǔ)言,所以這就意味著對(duì)象可以直接...
摘要:先實(shí)現(xiàn)一個(gè)簡(jiǎn)單的數(shù)據(jù)劫持。思路遍歷對(duì)象的每個(gè)屬性,為每個(gè)屬性掛上監(jiān)聽(tīng)函數(shù)即利用進(jìn)行元編程考慮屬性的子屬性的監(jiān)聽(tīng)先上代碼你訪問(wèn)了你設(shè)置了新的其中涉及的知識(shí)點(diǎn)如果屬性值還是對(duì)象,則遞歸繼續(xù) 先實(shí)現(xiàn)一個(gè)簡(jiǎn)單的數(shù)據(jù)劫持。思路: 遍歷對(duì)象的每個(gè)屬性,為每個(gè)屬性掛上監(jiān)聽(tīng)函數(shù)(即利用Object.defineProperty進(jìn)行元編程); 考慮屬性的子屬性的監(jiān)聽(tīng);先上代碼: function ...
摘要:原型要掌握這三者之間的關(guān)系,通過(guò)代碼例子記錄一下自身屬性的這里就是通過(guò)代碼看一下做了什么默認(rèn)情況下,將的所有屬性包括繼承的賦值給有什么東西呢自己的原型鏈,添加一個(gè)屬性,用來(lái)指明對(duì)象的誰(shuí)構(gòu)造的自身全部屬性,這邊構(gòu)建一個(gè)空對(duì)象原型,所以沒(méi)有自有 原型 要掌握這三者之間的關(guān)系prototype,constructor,__proto__通過(guò)代碼例子記錄一下 function F() { ...
閱讀 3441·2021-11-15 11:37
閱讀 2594·2021-09-29 09:48
閱讀 4342·2021-09-22 15:55
閱讀 3095·2021-09-22 10:02
閱讀 2727·2021-08-25 09:40
閱讀 3331·2021-08-03 14:03
閱讀 1786·2019-08-29 13:11
閱讀 1674·2019-08-29 12:49