自定義方法:1、直接通過“屬性名/值”來創(chuàng)建,語法“var 對象名={屬性名:屬性值};”;2、使用“var 對象名=new 構(gòu)造函數(shù)名(args);”語句;3、使用“Object.create(原型對象,descriptors)”語句。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供連山網(wǎng)站建設(shè)、連山做網(wǎng)站、連山網(wǎng)站設(shè)計、連山網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、連山企業(yè)網(wǎng)站模板建站服務(wù),十年連山做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
在Js中,除了Array、Date、Number等內(nèi)置對象外,開發(fā)者可以通過Js代碼創(chuàng)建自己的對象。
對象特性① 結(jié)構(gòu)類似'字典' :對象的屬性類似鍵/值對;屬性的名稱為字符串,屬性的值為任意類型。
② 原型繼承:Js的對象可繼承原型的屬性。
③ 動態(tài)結(jié)構(gòu):可動態(tài)新增、刪除對象的屬性。
④ 引用類型:js中的對象為引用類型。a為一個對象,b=a,修改b也會造成a的修改。
創(chuàng)建對象方式Js中創(chuàng)建自定義對象,主要通過三種方式:對象直接量、new 構(gòu)造函數(shù)以及Object.create()方法。每一種創(chuàng)建方式繼承的原型對象都不同:
① 對象直接量:原型為Object.prototype。
② new 構(gòu)造函數(shù):原型為構(gòu)造函數(shù)的prototype屬性。
③ Object.create():原型為傳入的第一個參數(shù),若第一個參數(shù)為null,以O(shè)bject.prototype為原型。
1、對象直接量
說明:直接通過 屬性名/值來創(chuàng)建。
語法:var o = { name:'tom', age:22 };
原型:Object.prototype
適用場景:應(yīng)用在某一特定的作用域里。
示例:
var o = { name: 'tom'}console.log(o.constructor.prototype); // => Object() :對象直接量的原型為Objectconsole.log(o.constructor.prototype === Object.prototype); // true2、new 構(gòu)造函數(shù)
說明:構(gòu)造函數(shù)也是種函數(shù),但為了區(qū)分平常所用的函數(shù),構(gòu)造函數(shù)的函數(shù)名采用大駱駝峰寫法(首字母大寫)。
語法:var o = new ClassName();
原型:構(gòu)造函數(shù)的prototype屬性。
示例:
// 1.創(chuàng)建構(gòu)造函數(shù)function People(name) { this.name;}var p = new People('Tom');console.log(p.constructor.prototype); // => People{} :原型為構(gòu)造函數(shù)的prototypeconsole.log(p.constructor.prototype === People.prototype); // => true// 2.自定義對象的多層繼承 :constructor返回最先調(diào)用的構(gòu)造函數(shù) function Student(age) { this.age = age;}Student.prototype = new People(); // 設(shè)置Student的原型為People對象var s = new Student(22); // 對象初始化時,先調(diào)用People(),再調(diào)用Student()console.log(s.constructor); // => function People :對象s返回的構(gòu)造函數(shù)為Peopleconsole.log(s.constructor.prototype); // => People{} :原型對象為Peopleconsole.log(s.constructor.prototype === People.prototype); // => true3、Object.create(prototype, propertyDescriptor) :ECMAScript 5規(guī)范
說明:創(chuàng)建并返回一個指定原型和指定屬性的對象。
語法:Object.create(prototype, propertyDescriptor)
參數(shù):
①prototype {prototype} :創(chuàng)建對象的原型,可以為null。若為null,對象的原型為undefined。
②propertyDescriptor {propertyDescriptor} 可選:屬性描述符。
原型:默然原型型為①參;若①參為null,對象的原型為undefined。
示例:
// 1.建立一個原型為null的對象var o = Object.create(null, { name: { value: 'tom' }});console.log(o.constructor); // => undefined // 2.創(chuàng)建一個原型為Array的對象var array = Object.create(Array.prototype, {});console.log(array.constructor); // => function Array 構(gòu)造函數(shù) console.log(array.constructor.prototype); // => [] :原型對象為數(shù)組// 3.創(chuàng)建一個原型為自定義類的對象function People() { }var p = Object.create(People.prototype, {});console.log(p.constructor); // => function People 構(gòu)造函數(shù) console.log(p.constructor.prototype); // => People{} :原型對象People【相關(guān)推薦:javascript學(xué)習(xí)教程】
標(biāo)題名稱:JavaScript如何自定義對象
網(wǎng)頁鏈接:http://jinyejixie.com/article14/cphede.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、微信公眾號、動態(tài)網(wǎng)站、網(wǎng)站排名、網(wǎng)站制作、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)