中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript怎么自定義對象

發布時間:2021-07-01 09:48:29 來源:億速云 閱讀:129 作者:chen 欄目:web開發

這篇文章主要介紹“JavaScript怎么自定義對象”,在日常操作中,相信很多人在JavaScript怎么自定義對象問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JavaScript怎么自定義對象”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

自定義方法:1、直接通過“屬性名/值”來創建,語法“var 對象名={屬性名:屬性值};”;2、使用“var 對象名=new 構造函數名(args);”語句;3、使用“Object.create(原型對象,descriptors)”語句。

本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

在Js中,除了Array、Date、Number等內置對象外,開發者可以通過Js代碼創建自己的對象。

對象特性

① 結構類似'字典' :對象的屬性類似鍵/值對;屬性的名稱為字符串,屬性的值為任意類型。

② 原型繼承:Js的對象可繼承原型的屬性。

③ 動態結構:可動態新增、刪除對象的屬性。

④ 引用類型:js中的對象為引用類型。a為一個對象,b=a,修改b也會造成a的修改。

創建對象方式

Js中創建自定義對象,主要通過三種方式:對象直接量、new 構造函數以及Object.create()方法。每一種創建方式繼承的原型對象都不同:

① 對象直接量:原型為Object.prototype。

② new 構造函數:原型為構造函數的prototype屬性。

③ Object.create():原型為傳入的第一個參數,若第一個參數為null,以Object.prototype為原型。

1、對象直接量

說明:直接通過 屬性名/值來創建。

語法:var o = { name:'tom', age:22 };

原型:Object.prototype

適用場景:應用在某一特定的作用域里。

示例:

var o = {
    name: 'tom'
}
console.log(o.constructor.prototype); // => Object() :對象直接量的原型為Object
console.log(o.constructor.prototype === Object.prototype); // true

2、new 構造函數

說明:構造函數也是種函數,但為了區分平常所用的函數,構造函數的函數名采用大駱駝峰寫法(首字母大寫)。

語法:var o = new ClassName();

原型:構造函數的prototype屬性。

示例:

// 1.創建構造函數
function People(name) {
    this.name;
}

var p = new People('Tom');
console.log(p.constructor.prototype); // => People{} :原型為構造函數的prototype
console.log(p.constructor.prototype === People.prototype); // => true

// 2.自定義對象的多層繼承 :constructor返回最先調用的構造函數 
function Student(age) {
    this.age = age;
}
Student.prototype = new People(); // 設置Student的原型為People對象

var s = new Student(22); // 對象初始化時,先調用People(),再調用Student()
console.log(s.constructor); // => function People :對象s返回的構造函數為People
console.log(s.constructor.prototype); // => People{} :原型對象為People
console.log(s.constructor.prototype === People.prototype); // => true

3、Object.create(prototype, propertyDescriptor) :ECMAScript 5規范

說明:創建并返回一個指定原型和指定屬性的對象。

語法:Object.create(prototype, propertyDescriptor)

參數:

①prototype {prototype} :創建對象的原型,可以為null。若為null,對象的原型為undefined。

②propertyDescriptor {propertyDescriptor} 可選:屬性描述符。

原型:默然原型型為①參;若①參為null,對象的原型為undefined。

示例:

// 1.建立一個原型為null的對象
var o = Object.create(null, {
    name: {
        value: 'tom'
    }
});
console.log(o.constructor); // => undefined 

// 2.創建一個原型為Array的對象
var array = Object.create(Array.prototype, {});
console.log(array.constructor); // => function Array 構造函數 
console.log(array.constructor.prototype); // => [] :原型對象為數組

// 3.創建一個原型為自定義類的對象
function People() { }
var p = Object.create(People.prototype, {});
console.log(p.constructor); // => function People 構造函數 
console.log(p.constructor.prototype); // => People{} :原型對象People

到此,關于“JavaScript怎么自定義對象”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

从江县| 蛟河市| 林州市| 德令哈市| 齐齐哈尔市| 宁陵县| 含山县| 苍山县| 林口县| 张家口市| 合江县| 泗洪县| 石渠县| 贡山| 商水县| 沙坪坝区| 清水河县| 盐边县| 察隅县| 土默特右旗| 筠连县| 正宁县| 奎屯市| 前郭尔| 东辽县| 福海县| 金昌市| 怀宁县| 新巴尔虎左旗| 德化县| 义乌市| 新竹县| 防城港市| 禹州市| 出国| 那曲县| 贵溪市| 阿巴嘎旗| 平利县| 晋宁县| 郎溪县|