您好,登錄后才能下訂單哦!
了解JavaScript創(chuàng)建對(duì)象的方式是什么?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
在語法方面,JavaScript是一種靈活的面向?qū)ο笳Z言。在本文中,我們將給大家介紹JavaScript實(shí)例化對(duì)象的不同方法。
需要注意的是JavaScript是一種無類語言,并且函數(shù)以某種方式使用,以便它們模擬一個(gè)類。
使用函數(shù)作為類:
用JavaScript實(shí)例化對(duì)象的最簡單方法之一。我們定義了一個(gè)經(jīng)典的JavaScript函數(shù),并使用new關(guān)鍵字創(chuàng)建函數(shù)的對(duì)象。函數(shù)的屬性和方法使用this關(guān)鍵字創(chuàng)建。
<script> function copyClass(name, age) { this.name = name; this.age = age; this.printInfo = function() { console.log(this.name); console.log(this.age); } } // 創(chuàng)建copyClass對(duì)象并初始化參數(shù)。 var obj = new copyClass("Vineet", 20); //調(diào)用copyClass的方法。 obj.printInfo(); </script>
輸出:
Vineet 20
說明:OOP中的類有兩個(gè)主要組件,某些參數(shù)和一些成員函數(shù)。在這個(gè)方法中,我們聲明一個(gè)類似于類的函數(shù),有兩個(gè)參數(shù),name和age(this關(guān)鍵字用于將類的名稱和年齡區(qū)分為正在提供的參數(shù)的名稱和年齡。)和printInfo方法,用于打印這些參數(shù)的值。然后我們簡單地創(chuàng)建一個(gè)copyClass的對(duì)象obj,初始化它并調(diào)用它的方法。
使用對(duì)象字面量:
字面量是定義對(duì)象的更小和更簡單的方法。下面我們用字面量實(shí)例化一個(gè)與前一個(gè)對(duì)象完全相同的對(duì)象。
<script> var obj = { name : "", age : "", printInfo : function() { console.log(this.name); console.log(this.age); } } // 初始化參數(shù)。 obj.name = "Vineet"; obj.age = 19; // 使用對(duì)象的方法。 obj.printInfo(); </script>
輸出:
Vineet 20
說明:這個(gè)方法與前一個(gè)方法的工作原理相同,但是我們沒有將參數(shù)(名稱和年齡)和方法(printInfo)捆綁在函數(shù)中,而是將它們捆綁在對(duì)象本身中,初始化對(duì)象并簡單地使用方法。
使用函數(shù)的單例:
第三種方法是另外兩種方法的結(jié)合。我們可以使用一個(gè)函數(shù)來定義一個(gè)單例對(duì)象。
<script> var obj = new function() { this.name = ""; this.age = ""; this.printInfo = function() { console.log(this.name); console.log(this.age); }; } obj.name = "Vineet"; obj.age = 20; obj.printInfo(); </script>
輸出:
Vineet 20
說明:這是前兩種方法的組合,我們將方法和參數(shù)捆綁在一個(gè)函數(shù)中,但沒有為它聲明單獨(dú)的函數(shù)(如方法1中的copyClass),而是簡單地使用函數(shù)結(jié)構(gòu)聲明一個(gè)對(duì)象。
感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)JavaScript創(chuàng)建對(duì)象的方式是什么大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。