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

資訊專欄INFORMATION COLUMN

javascript自定義對(duì)象以及創(chuàng)建對(duì)象的新類型(引用類型)

余學(xué)文 / 1467人閱讀

摘要:創(chuàng)建對(duì)象的新類型引用類型引用類型由三部分組成構(gòu)造函數(shù)方法定義屬性定義引用類型首先要?jiǎng)?chuàng)建構(gòu)造函數(shù),如下指代的就是每個(gè)對(duì)象都有屬性,但該屬性只對(duì)構(gòu)造函數(shù)有用,可以將看成對(duì)象的實(shí)際原型,賦給的任何屬性和方法對(duì)于對(duì)象都可用,和可以共享他們

1. javascript自定義對(duì)象

有一定js基礎(chǔ)的童鞋都知道怎么創(chuàng)造對(duì)象,在這篇文章中我想詳細(xì)的闡述一下。

創(chuàng)建對(duì)象--方法一
var obj=new Object()

該方法只需要使用new操作符后接Object構(gòu)造函數(shù)

創(chuàng)建對(duì)象--方法二
var obj={}

js提供了使用字面量語法來創(chuàng)建對(duì)象:一對(duì)花括號(hào){},字面量語法比較簡潔,不需要new一個(gè)對(duì)象。

創(chuàng)建對(duì)象屬性并賦值
obj.first="a";
obj.second="b";

缺點(diǎn):js并不會(huì)告知屬性名是否有以外的拼寫錯(cuò)誤,而只能用錯(cuò)誤的屬性名創(chuàng)建一個(gè)新的屬性名,這樣就會(huì)導(dǎo)致難以追蹤存在的錯(cuò)誤,所以創(chuàng)建屬性的時(shí)候要謹(jǐn)慎寫錯(cuò)

創(chuàng)建對(duì)象的方法

也可以用這種方法為方法賦值,只是說賦的是函數(shù)而不是其他的類型值,如下:

obj.eat=function(){
console.log("eating");
}

function沒有名稱,稱為匿名函數(shù),就本身而言,匿名函數(shù)是一種錯(cuò)誤的語法,除非將它賦給一個(gè)變量
創(chuàng)建obj對(duì)象的完整代碼:

var obj={};
obj.first="a";
obj.second="b";
obj.eat=function(){
console.log("eating");
}

上述代碼用了4條語句完成一個(gè)完整的對(duì)象,如果用字面量符號(hào)法來定義整個(gè)對(duì)象,可以將一條語句縮減為一條語句。

var obj={
    first:"a",
    second:"b",
    eat:function(){
    return this.first+""+this.second;
    };
};

上述代碼采用屬性,冒號(hào),值的方式定義屬性和方法,注意使用逗號(hào)來分隔各個(gè)屬性和方法的。

2. 創(chuàng)建對(duì)象的新類型(引用類型) 引用類型由三部分組成

構(gòu)造函數(shù)

方法定義

屬性

定義引用類型

首先要?jiǎng)?chuàng)建構(gòu)造函數(shù),如下:

function person(first,second){
    this.first=first;
    this.second=second;
    this.prototype.eat=function(){
        console.log("eating");
    }
}

this指代的就是person, 每個(gè)對(duì)象都有prototype屬性,但該屬性只對(duì)構(gòu)造函數(shù)有用,可以將person.prototype看成person對(duì)象的實(shí)際原型,賦給person.prototype的任何屬性和方法對(duì)于person對(duì)象都可用,person1和person2可以共享他們

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

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

相關(guān)文章

  • JavaScript繼承的六種方式

    這是 最近在學(xué)習(xí)js繼承時(shí)看了多篇文章以及自我總結(jié)的學(xué)習(xí)筆記。 目錄:一:原型鏈二:構(gòu)造函數(shù)三:原型鏈和構(gòu)造函數(shù)組合繼承四:原型式五:寄生式六:寄生組合式 1、原型鏈 function Super(){ this.name = lily; this.age = 21; this.arr = [1,2,3] } function Sub(){} Sub.prototype = new S...

    wujl596 評(píng)論0 收藏0
  • JavaScript 闖關(guān)記》之原型及原型鏈

    摘要:像和這樣的原生構(gòu)造函數(shù),在運(yùn)行時(shí)會(huì)自動(dòng)出現(xiàn)在執(zhí)行環(huán)境中。理解原型對(duì)象在默認(rèn)情況下,所有原型對(duì)象都會(huì)自動(dòng)獲得一個(gè)構(gòu)造函數(shù)屬性,這個(gè)屬性包含一個(gè)指向?qū)傩运诤瘮?shù)的指針。而通過這個(gè)構(gòu)造函數(shù),我們還可繼續(xù)為原型對(duì)象添加其他屬性和方法。 原型鏈?zhǔn)且环N機(jī)制,指的是 JavaScript 每個(gè)對(duì)象都有一個(gè)內(nèi)置的 __proto__ 屬性指向創(chuàng)建它的構(gòu)造函數(shù)的 prototype(原型)屬性。原型鏈的...

    cjie 評(píng)論0 收藏0
  • 前端面試題 -- JavaScript (一)

    摘要:前言前兩天總結(jié)了一下方面的面試題傳送門,今天翻看了一些面試中常見的幾個(gè)問題只是一部分,會(huì)持續(xù)更新,分享給有需要的小伙伴,歡迎關(guān)注如果文章中有出現(xiàn)紕漏錯(cuò)誤之處,還請(qǐng)看到的小伙伴留言指正,先行謝過以下有哪些數(shù)據(jù)類型種原始數(shù)據(jù)類型布爾表示一個(gè)邏輯 前言 前兩天總結(jié)了一下HTML+CSS方面的面試題 (傳送門),今天翻看了一些 JavaScript 面試中常見的幾個(gè)問題(只是一部分,會(huì)持續(xù)更新...

    junnplus 評(píng)論0 收藏0
  • 讀《javaScript高級(jí)程序設(shè)計(jì)-第6章》之封裝類

    摘要:創(chuàng)建構(gòu)造函數(shù)后,其原型對(duì)象默認(rèn)只會(huì)取得屬性至于其他的方法都是從繼承來的。上圖展示了構(gòu)造函數(shù)的原型對(duì)象和現(xiàn)有的兩個(gè)實(shí)例之間的關(guān)系。所有原生的引用類型都在其構(gòu)造函數(shù)的原型上定義了方法。 第6章我一共寫了3篇總結(jié),下面是相關(guān)鏈接:讀《javaScript高級(jí)程序設(shè)計(jì)-第6章》之理解對(duì)象讀《javaScript高級(jí)程序設(shè)計(jì)-第6章》之繼承 工廠模式 所謂的工廠模式就是,把創(chuàng)建具體對(duì)象的過程抽象...

    seal_de 評(píng)論0 收藏0
  • ES6-前世今生(0)

    摘要:更新了個(gè)版本,最新正式版是語言的下一代標(biāo)準(zhǔn),早已在年月正式發(fā)布?;静恢С忠苿?dòng)端瀏覽器對(duì)的支持情況版起便可以支持的新特性。比較通用的工具方案有,,,等。 1、ECMAScript是什么? 和 JavaScript 有著怎樣的關(guān)系? 1996 年 11 月,Netscape 創(chuàng)造了javascript并將其提交給了標(biāo)準(zhǔn)化組織 ECMA,次年,ECMA 發(fā)布 262 號(hào)標(biāo)準(zhǔn)文件(ECMA-...

    LeviDing 評(píng)論0 收藏0

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

0條評(píng)論

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