您好,登錄后才能下訂單哦!
這篇文章主要介紹“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怎么自定義對象”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。