JS使用new操作符創(chuàng)建對(duì)象的方法分析
本文實(shí)例講述了JS使用new操作符創(chuàng)建對(duì)象的方法。分享給大家供大家參考,具體如下:
在編寫js代碼時(shí),我們有時(shí)會(huì)需要使用函數(shù)來模擬java中的類,并用它來產(chǎn)生對(duì)象,在定義了一個(gè)構(gòu)造函數(shù)之后我們需要使用new
操作符來調(diào)用調(diào)用函數(shù)才能得到我們想要的對(duì)象。例如:
<script> function Constructor(name){ this.name = name } var person1 = Constructor("張三");//undefined var person2 = new Constructor("張三");//得到一個(gè)對(duì)象{name:"張三"} console.log(person1); console.log(person2); </script>
運(yùn)行結(jié)果:
如果我們不使用new
操作符調(diào)用函數(shù),就只會(huì)簡(jiǎn)單的執(zhí)行函數(shù),并把函數(shù)的返回值賦給person1,所以上面的例子中person1的值是undefined,.
如果我們使用new
操作符調(diào)用構(gòu)造函數(shù),做了哪些事情呢?
1.構(gòu)造函數(shù)沒有返回值
使用new
操作符調(diào)用函數(shù),會(huì)隱式的創(chuàng)建一個(gè)對(duì)象(我們這里稱這個(gè)對(duì)象為obj),這個(gè)對(duì)象obj是連接到構(gòu)造函數(shù)的原型上的,即obj會(huì)繼承構(gòu)造函數(shù)原型上的屬性方法,并且構(gòu)造函數(shù)中的this也被綁定到了這個(gè)對(duì)象上,執(zhí)行完成后這個(gè)對(duì)象會(huì)被作為返回值返回。
2.構(gòu)造函數(shù)有返回值(這種情況比較少,至少我沒用過)
new
出來的值由返回值的prototype
而定
例如:
function Constructor(name){ this.name = name return this.name; } var person = new Constructor("123");//Constructor {name: "123"};Object,因?yàn)榛绢愋偷膒rototype都是Object function Constructor(name){ this.name = name return new String(this.name); } var person = new Constructor("123");//String {0: "1", 1: "2", 2: "3", length: 3, [[PrimitiveValue]]: "123"}, console.log(person);
運(yùn)行結(jié)果:
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。
更多關(guān)于JavaScript相關(guān)內(nèi)容還可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
前端使用JS內(nèi)置Blob實(shí)現(xiàn)下載各種形式的文件實(shí)例
通過使用JavaScript我們可以很方便地實(shí)現(xiàn)文件的下載功能,這篇文章主要給大家介紹了關(guān)于前端使用JS內(nèi)置Blob實(shí)現(xiàn)下載各種形式文件的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06js實(shí)現(xiàn)頁面跳轉(zhuǎn)的五種方法推薦
下面小編就為大家?guī)硪黄猨s實(shí)現(xiàn)頁面跳轉(zhuǎn)的五種方法推薦。小編覺得挺不錯(cuò)的。現(xiàn)在分享給大家。給大家參考一下。2016-03-03JavaScript實(shí)現(xiàn)時(shí)間倒計(jì)時(shí)跳轉(zhuǎn)(推薦)
這篇文章主要介紹了JavaScript實(shí)現(xiàn)時(shí)間倒計(jì)時(shí)跳轉(zhuǎn)(推薦)的相關(guān)資料,涉及到settimeout和setinterval方法的介紹,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06JavaScript中Infinity(無窮數(shù))的使用和注意事項(xiàng)
Infinity(無窮大)在 JS 中是一個(gè)特殊的數(shù)字,它的特性是它比任何有限的數(shù)字都大,如果不知道 Infinity,我們?cè)谝恍┻\(yùn)算操作遇到時(shí),就會(huì)覺得很有意思,下面這篇文章主要給大家介紹了關(guān)于JavaScript中Infinity(無窮數(shù))的使用和注意事項(xiàng),需要的朋友可以參考下2022-04-04JavaScript獲取css行間樣式,內(nèi)連樣式和外鏈樣式的簡(jiǎn)單方法
下面小編就為大家?guī)硪黄狫avaScript獲取css行間樣式,內(nèi)連樣式和外鏈樣式的簡(jiǎn)單方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07JS實(shí)現(xiàn)黑色大氣的二級(jí)導(dǎo)航菜單效果
這篇文章主要介紹了JS實(shí)現(xiàn)黑色大氣的二級(jí)導(dǎo)航菜單效果,具有延遲響應(yīng)鼠標(biāo)事件顯示切換效果的功能,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-09-09