摘要:創(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
這是 最近在學(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...
摘要:像和這樣的原生構(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(原型)屬性。原型鏈的...
摘要:前言前兩天總結(jié)了一下方面的面試題傳送門,今天翻看了一些面試中常見的幾個(gè)問題只是一部分,會(huì)持續(xù)更新,分享給有需要的小伙伴,歡迎關(guān)注如果文章中有出現(xiàn)紕漏錯(cuò)誤之處,還請(qǐng)看到的小伙伴留言指正,先行謝過以下有哪些數(shù)據(jù)類型種原始數(shù)據(jù)類型布爾表示一個(gè)邏輯 前言 前兩天總結(jié)了一下HTML+CSS方面的面試題 (傳送門),今天翻看了一些 JavaScript 面試中常見的幾個(gè)問題(只是一部分,會(huì)持續(xù)更新...
摘要:創(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ì)象的過程抽象...
摘要:更新了個(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-...
閱讀 1844·2021-09-14 18:03
閱讀 2277·2019-08-30 15:48
閱讀 1133·2019-08-30 14:09
閱讀 518·2019-08-30 12:55
閱讀 2739·2019-08-29 11:29
閱讀 1497·2019-08-26 13:43
閱讀 2320·2019-08-26 13:30
閱讀 2379·2019-08-26 12:17