成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScrip學習之Object(上)

li21 / 2609人閱讀

摘要:對象篇簡介本身就是一個函數(shù),可用于工具函數(shù),也可以是用于構(gòu)造對象的函數(shù)其次可以添加屬性和方法方法又可以分為靜態(tài)方法定義在自身上的和實例方法定義在原型上的工具函數(shù)作為工具函數(shù)參數(shù)可以是任意數(shù)據(jù)類型,將其轉(zhuǎn)為對象如果參數(shù)是空,,則將其轉(zhuǎn)換為空對

對象篇 Object簡介

Object本身就是一個函數(shù),可用于工具函數(shù),也可以是用于構(gòu)造對象的函數(shù);其次Object可以添加屬性和方法;方法又可以分為靜態(tài)方法(定義在自身上的)和實例方法(定義在Object原型上的)

工具函數(shù)

作為工具函數(shù):參數(shù)可以是任意數(shù)據(jù)類型,將其轉(zhuǎn)為對象;如果參數(shù)是空,null,undefined,則將其轉(zhuǎn)換為空對象;如果參數(shù)是原始值,則返回包裝類對象;如果參數(shù)是對象則返回原對象;

利用這一特點可以構(gòu)建一個判斷參數(shù)是否為對象的函數(shù)

function isObject(target) {
    return target === Object(target);
}
作為構(gòu)造函數(shù)

作為構(gòu)造函數(shù):生成一個對象,在下篇中著重介紹

var obj = new Object();  //{}
部分靜態(tài)方法

Object的靜態(tài)方法:

keys()與hasOwnPropertyNames(),其都是將對象的自身屬性(不包含繼承部分)以數(shù)組形式返回;其唯一的區(qū)別是:對于不可枚舉的屬性,keys不會輸出,而hasOwnPropertyNames則會輸出,例如數(shù)組又一個不可枚舉的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方法可以輸出對象屬性的個數(shù),Object.keys(obj).length

剩余方法中篇記錄

部分實例方法

Object的實例方法:

Object.prototype.valueOf()
valueOf()返回對象的值,默認返回對象本身

var obj = {a : 1};
obj.valueOf() === obj;    //true

Object.prototype().toString()
toString()返回類型字符串,默認值為[object Object],第一個object為類型,第二個是構(gòu)造函數(shù)Object,我們可以利用第二個構(gòu)造函數(shù)來判斷數(shù)據(jù)的類型

Object.prototype.toString.call([]);    //[object Array]
Object.prototype.toString.call({});    //[object Object]
Object.prototype.toString.call(123);   //[object Number]

改進成函數(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é)果一樣,不同的是對于數(shù)組,日期,數(shù)字類型的的包裝對象,返回地方化的字符串輸出格式

Object.prototype.hasOwnProperty(),用于判斷參數(shù)是否為對象的屬性,返回一個布爾值

var obj = {a : 1};
obj.hasOwnProperty("a");   //true

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/98132.html

相關(guān)文章

  • JS習之JSON數(shù)據(jù)格式

    摘要:簡析簡介,是一種數(shù)據(jù)格式而不是編程語言,它和并沒有從屬關(guān)系,任何編程語言都可以使用語法規(guī)則分為三類簡單值與語法相同,可以在中表示字符串,數(shù)值,布爾值和,但是其不支持數(shù)值字符串對象鍵值和鍵名都得用雙引號數(shù)組解析和序列化目標對象,過濾器,字符串 JSON簡析 1.簡介 JSON,是一種數(shù)據(jù)格式而不是編程語言,它和JavaScrip并沒有從屬關(guān)系,任何編程語言都可以使用JSON; 2.語法...

    isaced 評論0 收藏0
  • jQuery源碼習之extend

    摘要:源碼學習之用于合并對象,可選擇是否深復制。盡管官方文檔明確指出第一個參數(shù)是的調(diào)用情況并不支持,但是這個版本的源碼中,判斷第一個參數(shù)的類型雖有限定是類型,但卻未對其值真假加以限定。調(diào)用方式源碼和指向同一個函數(shù),在函數(shù)內(nèi)部,對調(diào)用情況進行區(qū)分。 jQuery源碼學習之extend $.extend用于合并對象,可選擇是否深復制。使用時,第一個參數(shù)為合并后的對象。如果要進行深拷貝,則參數(shù)1為...

    quietin 評論0 收藏0
  • Javascript習之繼承

    摘要:繼承是面向?qū)ο缶幊陶Z言中的一個重要的概念,繼承可以使得子類具有父類的屬性和方法或者重新定義追加屬性和方法等。但是在中沒有類的概念,是基于原型的語言,所以這就意味著對象可以直接從其他對象繼承。 繼承是面向?qū)ο缶幊陶Z言中的一個重要的概念,繼承可以使得子類具有父類的屬性和方法或者重新定義、追加屬性和方法等。但是在Javascript中沒有類的概念,是基于原型的語言,所以這就意味著對象可以直接...

    CHENGKANG 評論0 收藏0
  • vue源碼習之簡單的數(shù)據(jù)監(jiān)聽

    摘要:先實現(xiàn)一個簡單的數(shù)據(jù)劫持。思路遍歷對象的每個屬性,為每個屬性掛上監(jiān)聽函數(shù)即利用進行元編程考慮屬性的子屬性的監(jiān)聽先上代碼你訪問了你設(shè)置了新的其中涉及的知識點如果屬性值還是對象,則遞歸繼續(xù) 先實現(xiàn)一個簡單的數(shù)據(jù)劫持。思路: 遍歷對象的每個屬性,為每個屬性掛上監(jiān)聽函數(shù)(即利用Object.defineProperty進行元編程); 考慮屬性的子屬性的監(jiān)聽;先上代碼: function ...

    zone 評論0 收藏0
  • JavaScript習之對象原型及繼承

    摘要:原型要掌握這三者之間的關(guān)系,通過代碼例子記錄一下自身屬性的這里就是通過代碼看一下做了什么默認情況下,將的所有屬性包括繼承的賦值給有什么東西呢自己的原型鏈,添加一個屬性,用來指明對象的誰構(gòu)造的自身全部屬性,這邊構(gòu)建一個空對象原型,所以沒有自有 原型 要掌握這三者之間的關(guān)系prototype,constructor,__proto__通過代碼例子記錄一下 function F() { ...

    妤鋒シ 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<