老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

JavaScript中創建對象的三種方式分別是什么

JavaScript中創建對象的三種方式分別是什么,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

成都創新互聯是一家專業提供甌海企業網站建設,專注與成都網站制作、成都網站設計、H5開發、小程序制作等業務。10年已為甌海眾多企業、政府機構等服務。創新互聯專業網站設計公司優惠進行中。

Javascript中的一切幾乎都是對象,無論是數組還是函數。本文將教你使用JavaScript創建對象的三種方法。

對象字面量

JavaScript對象字面量是指用大括號括起來的用逗號分隔的名稱——值對列表。對象字面量用于封裝代碼并將其包裝在有序的包中。

let Person = {   name: "Foziya",   age: 20,   action: ["walk", " run"],   greeting: function() {     console.log("Hello");   } };

對象字面量的屬性值可以是任何數據類型,包括數組字面量、函數字面量和嵌套對象字面量。

let shape = {   name: "rectangle",   color: "red",   size: {     length: 10,     breadth: 20   } };   console.log(shape);  // { name:'rectangle',  // color: 'red',  // size: { length:10, breadth: 20 } }   console.log(shape.size.length) // 10

簡寫屬性名稱

假設必須將不同的變量放在一個對象內,有一種方法是:

let one = 1; let two = 2; let three = 3;   let numbers = {   one: one,   two: two,   three: three }; console.log(numbers);   //{ one: 1, two: 2, three: 3 }

使用ECMAScript 2015,可通過較短的表示法實現相同的目的:

let one = 1; let two = 2; let three = 3;   let numbers = { one, two, three };   console.log(numbers); //{ one: 1, two: 2, three: 3 }   console.log(numbers.one) // 1   console.log(numbers.one === { one }.one); // true

用戶定義的構造函數

你也可以使用函數在JavaScript中創建對象。仔細想,其實它們本身已經是對象了,因此對象用于創建更多對象。

通常,此方法優于對象構造函數。試想必須創建數百個具有相同屬性的對象,使用對象構造函數方法,必須手動將所有屬性添加到所有對象,但是使用構造函數可以預定義這些屬性。

functionmovies(name, releaseYear, genre, ratings) {   this.name = name;   this.releaseYear =releaseYear;   this.genre = genre;   this.ratings =ratings;   this.watch = () => {     console.log("WatchOnline");   }; }   let DPS = new movies("Dead Poets Society", 1989, ["Drama", "Teen"], {   IMDb: "8.1 /10",   Metacritic: "79%" });   console.log(DPS);movies { //     name: 'Dead Poets Society', //         releaseYear: 1989, //             genre: ['Drama','Teen'], //                 ratings: { IMDb:'8.1 / 10', Metacritic: '79%' }, //     watch: [Function] // }     let rocky = new movies("Rocky", 1976, ["Drama", "Sports"], {   IMDb: "8.1 /10",   Metacritic: "70%" });   console.log(rocky);   // movies { //     name: 'Rocky', //         releaseYear: 1976, //             genre: ['Drama','Sports'], //                 ratings: { IMDb:'8.1 / 10', Metacritic: '70%' }, //     watch: [Function] // }

使用相同的構造函數,可以創建任意數量的對象。

重復的屬性名稱

如果兩個屬性使用相同的名稱,則第二個屬性將覆蓋第一個屬性。

let Person = {   name: "NeyVatsa",   name: "Shashank" }; console.log(Person.name);   // Shashank

New關鍵字

對象構造函數為給定值創建一個對象封裝器。如果該值不存在或未定義,它將創建并返回至一個空對象。否則的話,它將返回至一個與給定值類型一致的對象。

也可以使用new關鍵字創建對象。使用Javascript中的內置對象構造函數,創建一個新的空對象;或者,此關鍵字可以與用戶定義的構造函數一起使用。首先來看一個例子:

let movies = newObject();   console.log(movies) //{}

下一步是向此空對象添加屬性和方法,可通過簡單的點標記來實現:

let movies = newObject();   console.log(movies) //{}   movies.name = "Dead Poets Society"; movies.releaseYear = 1989; movies.genre = ["Drama", "Teen"]; movies.ratings = {   IMDb: "8.1 /10",   Metacritic: "79%" }; movies.watch = () => {   console.log("WatchOnline"); };   console.log(movies); // { name: 'Dead Poets Society', //  releaseYear: 1989, //  genre: [ 'Drama', 'Teen' ], //  ratings: { IMDb: '8.1 / 10',Metacritic: '79%' }, //  watch: [Function] }   movies.watch(); // Watch Online

但我不建議這種做法,因為后臺有作用域解析,可以檢查構造函數是內置的還是用戶定義的。

使用ES6類創建對象

此方法與通過用戶定義的構造函數使用new關鍵字非常類似。類是面向對象編程(OOP)的主要組件,可以創建實際上是對象的許多類實例。在ES6規范的支持下,現在可以用類替換構造函數。

classMovies {   constructor(name,releaseYear, genre, ratings) {     this.name = name;     this.releaseYear = releaseYear;     this.genre = genre;     this.ratings =ratings;   }   watch() {     console.log("WatchOnline");   } } let rocky = new Movies("Rocky", 1976, ["Drama", "Sports"], {   IMDb: "8.1 /10",   Metacritic: "70%" }); console.log(rocky); // Movies { //     name: 'Rocky', //         releaseYear: 1976, //             genre: ['Drama','Sports'], //                 ratings: { IMDb:'8.1 / 10', Metacritic: '70%' } // }   rocky.watch(); //Watch Online

上面示例中,我已經定義了構造函數中的所有參數。方法可以是類的一部分,而聲明可以稍后添加到類的創建實例中,成為“對象”:

/* above example */ rocky.buy = function() {   console.log("Buy theMovie"); }; rocky.buy(); // Buy the Movie

而這里方法是對象的一部分,不會影響原始類。

圖源:unsplash

在JavaScript這一基于原型的繼承語言中,類和構造函數都模仿面向對象的繼承模型。熟悉類非常有幫助,React這樣的流行JavaScript庫會經常使用類句法。

關于JavaScript中創建對象的三種方式分別是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創新互聯行業資訊頻道了解更多相關知識。


網站標題:JavaScript中創建對象的三種方式分別是什么
文章轉載:http://www.xueling.net.cn/article/iisspd.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 亚洲久草av| 欧美丰满熟妇bbbbbb百度 | 最近2019年好看中文字幕视频 | av无码中文字幕无码王 | 北条麻纪在线观看aⅴ | 欧美精品久久96人妻无码 | 国产不卡三区 | 亚洲精品无码日韩国产不卡AV | 久久精品成人一区 | 久久精品国产第一区二区三区 | 四虎WWW永久在线精品 | 狠狠艹狠狠干 | 欧美日韩国产一区二区三区在线观看 | 成人国产精品色哟哟 | 久久久久久久久毛片精品 | 欧美阿v高清资源不卡在线播放 | 懂爱av | 国产精品精品自在线拍互動交流 | 一女三男做2爱A片免费 | 欧美videosdesexo吹潮 | 91无遮挡无码国产在线播放 | 免费观看美女用震蛋喷水的视频 | 欧美在线播放成人a | 亚洲自拍r级免费视频 | 日本XXXⅩ色视频在线观看 | 亚洲伊人久久精品影院一美女洗澡 | 老太婆性杂交视频 | 咖宝车神第四季免费 | 亚洲精品无码精品MV在线观看 | 久久精品国产午夜做受体验区 | 亚洲欧美日韩国产成人精品影院 | 天天综合网7799精品 | 国产精品香蕉在线观看不卡 | 一级黄色片免费看 | 91麻豆精品国产综合久久久久久 | 9l亚洲国产成人精品一区二三 | 综合国产精品 | 亚洲午夜天堂精品福利天堂 | 特黄男女交性A片激情视频 婷婷五月六月综合缴情 | 强壮的公次次弄得我高潮a片日本 | 亚洲私人影院 |