国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript學(xué)習(xí)第六天筆記(對(duì)象)

Crazy_Coder / 442人閱讀

摘要:宿主對(duì)象指的是運(yùn)行環(huán)境提供的對(duì)象。不過(guò)類(lèi)型是中所有類(lèi)型的父級(jí)所有類(lèi)型的對(duì)象都可以使用的屬性和方法可以通過(guò)的構(gòu)造函數(shù)來(lái)創(chuàng)建自定義對(duì)象。當(dāng)以非構(gòu)造函數(shù)形式被調(diào)用時(shí),等同于。對(duì)象初始化器方式使用對(duì)象初始化器也被稱作通過(guò)字面值創(chuàng)建對(duì)象。

對(duì)象 概述

在JavaScript中的對(duì)象,和其他編程語(yǔ)言中的對(duì)象一樣,可以比照現(xiàn)實(shí)生活中的對(duì)象來(lái)理解它。

對(duì)象的分類(lèi)

1.內(nèi)置對(duì)象/原生對(duì)象
就是JavaScript運(yùn)行環(huán)境提供的對(duì)象。在ECMAScript標(biāo)準(zhǔn)定義,由JavaScript解釋器/引擎提供具體實(shí)現(xiàn)。
2.宿主對(duì)象
指的是JavaScript運(yùn)行環(huán)境提供的對(duì)象。一般是由瀏覽器廠商提供實(shí)現(xiàn)的(目前也有獨(dú)立的JavaScript解釋器/引擎提供實(shí)現(xiàn)),主要分為BOM和DOM。
3.自定義對(duì)象
就是由開(kāi)發(fā)人員自主創(chuàng)建的對(duì)象。

Object對(duì)象 概述

Object類(lèi)型與Array、Math等一樣都是JavaScript的引用類(lèi)型。不過(guò)Object類(lèi)型是JavaScript中所有類(lèi)型的父級(jí)(所有類(lèi)型的對(duì)象都可以使用Object的屬性和方法).
JavaScript可以通過(guò)Object的構(gòu)造函數(shù)來(lái)創(chuàng)建自定義對(duì)象。當(dāng)以非構(gòu)造函數(shù)形式被調(diào)用時(shí),Object等同于new Object()。

Object對(duì)象的方法

Object對(duì)象的方法分為自有方法和原型方法兩種:
1.自由方法
a.creat() 值原定對(duì)象和屬性來(lái)創(chuàng)建一個(gè)新的對(duì)象
b.getOwnPropetyNames() 返回一個(gè)數(shù)組,它包含了指定對(duì)象所有的可枚舉或不可枚舉的屬性名。
c.keys() 返回一個(gè)數(shù)組,包含指定對(duì)象的所有自由可遍歷屬性的名稱。
2.原型方法
prototype.hasOwnProperty() 返回一個(gè)布爾值,該值指示對(duì)象是否包含制定的屬性。

對(duì)象初始化器方式

使用對(duì)象初始化器也被稱作通過(guò)字面值創(chuàng)建對(duì)象。通過(guò)對(duì)象初始化器創(chuàng)建對(duì)象的語(yǔ)法如下:

  var 函數(shù)名 ={
  屬性名:屬性值,
  方法名:function(){
    }
  }

示例代碼如下:

var obj1 = {
    name:"EVA",
    age:14,
    sayMe:function(){
           console .log("EVA001");
           }
        }
對(duì)象構(gòu)造函數(shù)方式

利用Object作為構(gòu)造函數(shù)創(chuàng)建對(duì)象
var 對(duì)象名 = new Object();
var 對(duì)象名 = Object();

var obj2 = new Object();
var obj3 = Object();

console.log(obj2);// {}
console.log(obj3);// {}

var obj4 = new Object(undefined);
var obj5 = new Object(null);

console.log(obj4);
console.log(obj5);
利用Object.create()方法創(chuàng)建對(duì)象

var 對(duì)象名 = Object.create(null) -> 創(chuàng)建一個(gè)空對(duì)象
var 對(duì)象名 = Object.create(obj)
obj - 表示另一個(gè)對(duì)象
特點(diǎn) - 當(dāng)前創(chuàng)建的新對(duì)象擁有與obj對(duì)象相同的屬性和方法

var obj6 = Object.create(null);
var obj7 = Object.create(obj1);
console.log(obj6);
console.log(obj7);
創(chuàng)建空對(duì)象的方法

1.var obj1 = {};
2.var obj2 = new Object();
3.var obj3 = Object();
4.var obj4 = new Object(undefined);
5.var obj5 = new Object(null);
6.var obj6 = Object(undefined);
7.var obj7 = Object(null);
8.var obj8 = Object.create(null);

對(duì)象的復(fù)制
var obj1 = {
    name : "123",
    sayMe : function(){
        console.log("THIS IS 123");
    }
}
console.log(obj1);

var obj2 = obj1;
console.log(obj2);

// 修改obj1對(duì)象的name屬性值
obj1.name = "456";
console.log(obj1);
console.log(obj2);
調(diào)用對(duì)象的屬性
var obj = {
name:"Chambers",
"Type-Content":"text/html",
sayMe : function(){
         console .log("Gemini");
         }
}

1.對(duì)象名.屬性名(不適用于復(fù)雜命名的屬性)
console .log(obj.name);//輸出結(jié)果:Chambers
2.對(duì)象名[屬性名]-通用的調(diào)用方式,適用于復(fù)雜命名的屬性名稱
console .log(obj["name"]);//輸出結(jié)果:Chambers
注意:當(dāng)訪問(wèn)一個(gè)對(duì)象不存在的屬性的值為undefined

新增對(duì)象的屬性
var obj = {
    name : "張無(wú)忌",
    sayMe : function(){
        console.log("我是張無(wú)忌");
    }
}
/*
    1.對(duì)象名.新的屬性名 = 屬性值
    2.對(duì)象名[新的屬性名] = 屬性值
 */
obj.age = 18;
console.log(obj);

空對(duì)象默認(rèn)沒(méi)有自身的屬性和方法(有父級(jí)Object的)

var obj1 = {};
console .log(obj1);
obj1.name = "EVA";
console .log(obj1);
修改對(duì)象的屬性

1.對(duì)象名.已存在的屬性名 = 屬性值
2.對(duì)象名.[已存在的屬性名] = 屬性值

var obj {
name :"GEMINI";
sayMe : function(){
  console .log("this is eva");
  }
}
obj.name = "eva";
console .log(obj);
刪除對(duì)象的屬性

1.delete 對(duì)象名.屬性名
2.delete 對(duì)象名[屬性名]

var obj ={
name:"EVA",
sayMe:function(){
console .log("this is eva");
   }
}
delete obj.name;
console .log(obj.name);//undefined
檢測(cè)對(duì)象的屬性
var obj = {
    name : "張無(wú)忌",
    age : 18
}

console.log(obj.age);// undefined

// 1.判斷對(duì)象的屬性值是否為 undefined
if (obj.age !== undefined) {
    console.log("obj對(duì)象的age屬性存在...");
} else {
    console.log("請(qǐng)先定義obj對(duì)象的age屬性...");
}

// 2.判斷對(duì)象的屬性值 - 先轉(zhuǎn)換為Boolean類(lèi)型
if (obj.age) {
    console.log("obj對(duì)象的age屬性存在...");
}

// 3.利用in關(guān)鍵字進(jìn)行判斷
if ("age" in obj) {
    console.log("obj對(duì)象的age屬性存在...");
} else {
    console.log("obj對(duì)象的age屬性不存在...")
}

// 4.Object類(lèi)型提供了hasOwnProperty()方法
if (obj.hasOwnProperty("age")) {
    console.log("obj對(duì)象的age屬性存在...");
} else {
    console.log("obj對(duì)象的age屬性不存在...")
}
遍歷對(duì)象的屬性
var obj = {
    name : "張無(wú)忌",
    age : 18,
    sayMe : function(){
        console.log("我是張無(wú)忌");
    }
}
// 1.for...in語(yǔ)句
for (var objAttr in obj) {
    // 通過(guò)對(duì)象屬性或方法對(duì)應(yīng)的值的類(lèi)型進(jìn)行區(qū)別
    if (obj[objAttr] instanceof Function) {
        // 當(dāng)前是對(duì)象的方法
        obj[objAttr]();
    } else {
        // 當(dāng)前是對(duì)象的屬性
        console.log(obj[objAttr]);
    }
}

// 2.Object類(lèi)型提供了keys()方法 - 只能遍歷可枚舉的屬性
var arr = Object.keys(obj);
for (var v in arr) {
    var objAttr = arr[v];
    // 通過(guò)對(duì)象屬性或方法對(duì)應(yīng)的值的類(lèi)型進(jìn)行區(qū)別
    if (obj[objAttr] instanceof Function) {
        // 當(dāng)前是對(duì)象的方法
        obj[objAttr]();
    } else {
        // 當(dāng)前是對(duì)象的屬性
        console.log(obj[objAttr]);
    }
}

// 3.Object類(lèi)型提供了getOwnPropertyNames()方法 - 包括不可枚舉的屬性
var arr = Object.getOwnPropertyNames(obj);
for (var v in arr) {
    var objAttr = arr[v];
    // 通過(guò)對(duì)象屬性或方法對(duì)應(yīng)的值的類(lèi)型進(jìn)行區(qū)別
    if (obj[objAttr] instanceof Function) {
        // 當(dāng)前是對(duì)象的方法
        obj[objAttr]();
    } else {
        // 當(dāng)前是對(duì)象的屬性
        console.log(obj[objAttr]);
    }
}
調(diào)用對(duì)象的方法
var obj = {
    name : "EVA",
    age : 14,
    sayMe : function(){
        console.log("this is eva");
    }
}
// 1.對(duì)象名.方法名()
obj.sayMe();
// 2.對(duì)象名[方法名]()
obj["sayMe"]();
新增對(duì)象的方法
var obj = {
    name : "eva",
    age : 18,
    sayMe : function(){
        console.log("this is eva");
    }
}
// 1.對(duì)象名.新的方法名 = function(){}
obj.sayYou = function(){
    console.log("shinji");
}
console.log(obj);
// 2.對(duì)象名[新的方法名] = function(){}
修改對(duì)象的方法

1.對(duì)象名.方法名 = function(){}
2.對(duì)象名[方法名] = function(){}

var obj = {
    name : "EVA",
    age : 18,
    sayMe : function(){
        console.log("this is eva");
    }
}

obj.sayMe = function(){
    console.log("shinji");
}
console.log(obj);
obj.sayMe();
刪除對(duì)象的方法

1.delete 對(duì)象名.方法名
2.delete 對(duì)象名[方法名]

var obj = {
    name : "張無(wú)忌",
    age : 18,
    sayMe : function(){
        console.log("我是張無(wú)忌");
    }
}

delete obj.sayMe;
// 訪問(wèn)對(duì)象中不存在的方法 -> 報(bào)錯(cuò)(TypeError: obj.sayMe is not a function)
// obj.sayMe();
console.log(obj.sayMe);// undefined
console.log(obj);

// 以屬性是否存在的方式進(jìn)行判斷
if ("sayMe" in obj) {
    // 確認(rèn)目前是一個(gè)方法
    if (obj.sayMe instanceof Function) {
        obj.sayMe();// 方法調(diào)用
    }
}
// 以上代碼可以優(yōu)化為以下代碼
if ("sayMe" in obj && obj.sayMe instanceof Function) {
    obj.sayMe();// 方法調(diào)用
}

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/108140.html

相關(guān)文章

  • 26天學(xué)通前端開(kāi)發(fā)(配資料)

    摘要:網(wǎng)上有很多前端的學(xué)習(xí)路徑文章,大多是知識(shí)點(diǎn)羅列為主或是資料的匯總,數(shù)據(jù)量讓新人望而卻步。天了解一個(gè)前端框架。也可以關(guān)注微信公眾號(hào)曉舟報(bào)告,發(fā)送獲取資料,就能收到下載密碼,網(wǎng)盤(pán)地址在最下方,獲取教程和案例的資料。 前言 好的學(xué)習(xí)方法可以事半功倍,好的學(xué)習(xí)路徑可以指明前進(jìn)方向。這篇文章不僅要寫(xiě)學(xué)習(xí)路徑,還要寫(xiě)學(xué)習(xí)方法,還要發(fā)資料,干貨滿滿,準(zhǔn)備接招。 網(wǎng)上有很多前端的學(xué)習(xí)路徑文章,大多是知...

    blair 評(píng)論0 收藏0
  • 第五六天

    摘要:上面讓我看看一些概念直接做任務(wù)感覺(jué)還是對(duì)我來(lái)說(shuō)太難了,完全沒(méi)有思路,主要還是看別人代碼還好能看到別人提交的,看懂然后自己敲一遍,其實(shí)好像這樣也能有一點(diǎn)小收獲,總好過(guò)放棄不做吧引用一個(gè)筆記第五六天 2019.4/4 大概六個(gè)小時(shí)?不想記時(shí)間了感覺(jué)= =感覺(jué)好像對(duì)我沒(méi)啥影響 今天學(xué)到了什么? 盒模型 浮動(dòng) 編碼規(guī)范 嘗試了一下提交代碼到github 今天遇到了什么問(wèn)題,以及情況 其實(shí)是...

    leanote 評(píng)論0 收藏0
  • 第五六天

    摘要:上面讓我看看一些概念直接做任務(wù)感覺(jué)還是對(duì)我來(lái)說(shuō)太難了,完全沒(méi)有思路,主要還是看別人代碼還好能看到別人提交的,看懂然后自己敲一遍,其實(shí)好像這樣也能有一點(diǎn)小收獲,總好過(guò)放棄不做吧引用一個(gè)筆記第五六天 2019.4/4 大概六個(gè)小時(shí)?不想記時(shí)間了感覺(jué)= =感覺(jué)好像對(duì)我沒(méi)啥影響 今天學(xué)到了什么? 盒模型 浮動(dòng) 編碼規(guī)范 嘗試了一下提交代碼到github 今天遇到了什么問(wèn)題,以及情況 其實(shí)是...

    darry 評(píng)論0 收藏0
  • 六天-《企業(yè)應(yīng)用架構(gòu)模式》-會(huì)話狀態(tài)

    摘要:無(wú)狀態(tài)的價(jià)值無(wú)狀態(tài)可以僅用很少的對(duì)象就可以處理很多的用戶,空閑狀態(tài)的用戶越多,無(wú)狀態(tài)服務(wù)器就越有用會(huì)話狀態(tài)相關(guān)性會(huì)話狀態(tài)只與當(dāng)前會(huì)話有關(guān),它存在于業(yè)務(wù)事務(wù)中,與其他會(huì)話及他們的業(yè)務(wù)事務(wù)是分開(kāi)的與記錄數(shù)據(jù)信息的區(qū)別記錄數(shù)據(jù)時(shí)長(zhǎng)期保存在數(shù)據(jù)庫(kù)中 1. 無(wú)狀態(tài)的價(jià)值: 無(wú)狀態(tài)可以僅用很少的對(duì)象就可以處理很多的用戶,空閑狀態(tài)的用戶越多,無(wú)狀態(tài)服務(wù)器就越有用 2. 會(huì)話狀態(tài): 相關(guān)性:會(huì)話狀態(tài)只...

    FrancisSoung 評(píng)論0 收藏0
  • vue六天

    摘要:路由路由通俗解釋根據(jù)不同地址,出現(xiàn)不同效果,一般是用來(lái)寫(xiě)應(yīng)用,單頁(yè)面應(yīng)用這里用的是版本一個(gè)路由的基本結(jié)構(gòu)跟用法引入路由文件主頁(yè)跳轉(zhuǎn)鏈接里面也是寫(xiě)新聞?wù)故緝?nèi)容準(zhǔn)備一個(gè)根組件組件都準(zhǔn)備我是主頁(yè)我是新聞準(zhǔn)備路由關(guān)聯(lián)啟動(dòng)路由是作用范圍 vue 路由 路由通俗解釋:根據(jù)不同url地址,出現(xiàn)不同效果,一般是用來(lái)寫(xiě)SPA應(yīng)用,單頁(yè)面應(yīng)用 這里用的是vue-router 0.7.13版本一個(gè)路由的基本...

    李昌杰 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<