日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

JavaScript如何自定义对象

發布時間:2023/12/31 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 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() :對象直接量的原型為Objectconsole.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{} :原型為構造函數的prototypeconsole.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返回的構造函數為Peopleconsole.log(s.constructor.prototype); // => People{} :原型對象為Peopleconsole.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學習教程】

總結

以上是生活随笔為你收集整理的JavaScript如何自定义对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。