RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

使用JavaScript創(chuàng)建對象的方法和案例

如意 ? 來源:讀芯術 ? 作者:讀芯術 ? 2020-07-06 09:41 ? 次閱讀

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

對象字面量

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

let Person = {

name: “Foziya”,

age: 20,

action: [“walk”, “ run”],

greeting: function() {

console.log(“Hello”);

}

};

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

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

簡寫屬性名稱

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

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,可通過較短的表示法實現(xiàn)相同的目的:

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

用戶定義的構造函數(shù)

你也可以使用函數(shù)在JavaScript中創(chuàng)建對象。仔細想,其實它們本身已經(jīng)是對象了,因此對象用于創(chuàng)建更多對象。

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

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]

// }

使用相同的構造函數(shù),可以創(chuàng)建任意數(shù)量的對象。

重復的屬性名稱

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

let Person = {

name: “NeyVatsa”,

name: “Shashank”

};

console.log(Person.name);

// Shashank

New關鍵字

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

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

let movies = newObject();

console.log(movies)

//{}

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

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

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

使用ES6類創(chuàng)建對象

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

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

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

/*

above example

*/

rocky.buy = function() {

console.log(“Buy theMovie”);

};

rocky.buy();

// Buy the Movie

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

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

你掌握了嗎?

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編程
    +關注

    關注

    88

    文章

    3614

    瀏覽量

    93685
  • 對象
    +關注

    關注

    1

    文章

    38

    瀏覽量

    17388
  • javascript
    +關注

    關注

    0

    文章

    516

    瀏覽量

    53850
收藏 人收藏

    評論

    相關推薦

    JavaScript權威指南 pdf 下載

    移植的DHTML動畫等常見任務。本書還包括詳細的參考手冊,涵蓋了JavaScript的核心API、遺留的客戶端API和W3C標準DOM API,記述了這些API中的每一個JavaScript對象、
    發(fā)表于 12-08 10:46

    JavaScript中的Object

    ,所以 sayName 方法的引?指向的是同一個堆內(nèi)存對象?!?書中是這樣寫的:使?動態(tài)原型模式時,不能使用對象字?量重寫原型。前面已經(jīng)解釋過了,如果在已經(jīng)創(chuàng)建了實例的情況下重寫原型,
    發(fā)表于 09-18 09:05

    Math對象屬性和方法

    valueOf() 方法返回 Math 對象的原始值。該原始值由 Math 對象派生的所有對象繼承。valueOf() 方法通常由
    發(fā)表于 10-27 12:21

    JavaScript 【2】對象

    (), 它會返回函數(shù)的定義:實例objectName.methodName有多種方式可以創(chuàng)建,使用和修改 JavaScript 對象。同樣也有多種方式用來創(chuàng)建,使用和修改屬性和
    發(fā)表于 07-17 10:33

    JavaScript【8】JSON

    ;www.taobao.com"} ]} JSON 格式化后為 JavaScript 對象JSON 格式在語法上與創(chuàng)建 JavaScript 對象
    發(fā)表于 07-17 10:45

    如何用java映射創(chuàng)建java對象和調(diào)用java對象

    java是一種解析語言,java程序是通過java虛擬機解析.class的方式運行起來。因此,java中就存在java映射的概念。下面介紹如何用java映射創(chuàng)建java對象和調(diào)用java對象
    發(fā)表于 04-11 14:43

    java如何創(chuàng)建對象的分析

    作為Java開發(fā)者,我們每天創(chuàng)建很多對象,但我們通常使用依賴管理系統(tǒng),比如Spring去創(chuàng)建對象。然而這里有很多創(chuàng)建
    發(fā)表于 09-27 14:36 ?0次下載

    實例分析Java中創(chuàng)建對象

    Java中有5種創(chuàng)建對象的方式,下面給出它們的例子還有它們的字節(jié)碼 Paste_Image.png 如果你運行了末尾的的程序,你會發(fā)現(xiàn)方法1,2,3用構造函數(shù)創(chuàng)建
    發(fā)表于 09-28 13:29 ?0次下載

    JavaScript創(chuàng)建對象的方式

    JavaScript中有幾種創(chuàng)建對象的方式,本文將一一介紹,工廠模式、構造函數(shù)模式、原型模式、動態(tài)原型模式、組合使用構造函數(shù)模式和原型模式。
    的頭像 發(fā)表于 02-22 09:32 ?3795次閱讀
    <b class='flag-5'>JavaScript</b><b class='flag-5'>創(chuàng)建</b><b class='flag-5'>對象</b>的方式

    淺談JavaScript創(chuàng)建對象的3種方法

    在OOP中,對象文字是指用大括號括起來的用逗號分隔的名稱 - 值對列表。名稱是字符串,值是可用的任何基本數(shù)據(jù)類型,例如數(shù)組,字符串,數(shù)字,函數(shù)等等。
    發(fā)表于 01-01 15:05 ?743次閱讀
    淺談<b class='flag-5'>JavaScript</b><b class='flag-5'>創(chuàng)建</b><b class='flag-5'>對象</b>的3種<b class='flag-5'>方法</b>

    使用簡單工廠方法實現(xiàn)硬盤對象創(chuàng)建

    簡單工廠方法定義一個用于創(chuàng)建對象的類,該類接受一個參數(shù),通過參數(shù)決定創(chuàng)建不同的對象。
    的頭像 發(fā)表于 05-14 14:07 ?1245次閱讀

    JavaScript中動態(tài)的創(chuàng)建QML對象

    在實際QML應用開發(fā)中,我們可以在JavaScript中動態(tài)的創(chuàng)建QML對象。這樣做可以延遲對象的實例化,當我們在需要創(chuàng)建
    的頭像 發(fā)表于 09-01 10:42 ?1556次閱讀

    Java反射技術實現(xiàn)對象創(chuàng)建

    一. 基礎概念 Java中,一般我們創(chuàng)建一個對象可能會選擇new一下個實例。但是隨著我們技術的不斷提升,我們也學習到了,可以通過反射技術實現(xiàn)對象創(chuàng)建。 可是,你有沒有想一下,什么時候
    的頭像 發(fā)表于 05-22 14:25 ?2304次閱讀
    Java反射技術實現(xiàn)<b class='flag-5'>對象</b>的<b class='flag-5'>創(chuàng)建</b>

    javascript的內(nèi)置對象有哪些

    你全面了解JavaScript的能力和應用場景。 一、基本數(shù)據(jù)類型對象: String(字符串對象):用于處理和操作文本數(shù)據(jù)。 Number(數(shù)字對象):用于處理和操作數(shù)字數(shù)據(jù)。 Bo
    的頭像 發(fā)表于 12-03 11:39 ?1337次閱讀

    vb運行時錯誤429不能創(chuàng)建對象

    系統(tǒng)中已經(jīng)安裝了對象所依賴的組件或庫。如果缺少這些組件或庫,就會導致不能創(chuàng)建對象的錯誤。解決這個問題的方法是安裝所需的組件或庫。 對象的類或
    的頭像 發(fā)表于 01-09 11:07 ?2284次閱讀
    RM新时代网站-首页