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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面向对象的程序设计——理解对象

發布時間:2025/6/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面向对象的程序设计——理解对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面向對象的程序設計

ECMA-262 把對象定義為:無須屬性的集合,其屬性可以包含基本值、對象或者函數。

理解對象

var person = new Object(); //創建對象 person.name = "Nicholas"; //添加屬性 person.age = 29; person.job = "teacher"; person.sayName = function(){ //添加方法,this 表示當前作用域下的對象;this 表示new Objecy() 實例化出來的那個對象;this 要放在一個作用域下,比如person.sayName()是person 下的方法,方法可用this 表示方法本身。alert(this.name); }; 復制代碼

屬性類型

ECMAScript 中有兩種屬性:數據屬性和訪問器屬性,它們不能在JavaScript 中直接訪問,規范把它們放在了兩對[[]]中間,如:[[Enumerable]]。

數據屬性 數據屬性是包含一個數據值的屬性,在這個位置可以讀取和寫入值。4個特性 [[Configurable]]:表示能否通過delete刪除屬性、能否修改屬性的特性,能否把屬性修改為訪問器屬性。默認true。 [[Enumerable]:表示能通過for-in循環返回屬性。默認true。 [[Writable]]:表示能否修改屬性值。默認true。 [[Value]]:包含這個屬性的數據值。默認undefined。 例:

var person = {name: "Nicholas" //[[Value]]的特性將這里設置為"Nicholas",對這個值的任何修改都講反應在這里。 }; 復制代碼

要修改默認特性,要使用Object.defineProperty()方法。接收三個參數:屬性所在的對象,屬性的名字和一個描述符對象。描述符對象必須是configurable,enumerable,writable,value。 例:

var person = {}; Object.defineProperty(person,"name",{ //person:屬性所在的對象;name:屬性名;花括號內是描述符對象writable: false, //只讀模式,true寫入模式value: "Nicholas" }); person.name = "zhangsan"; alert(person.name); //打印"Nicholas" 因為這邊是只讀模式 復制代碼

在調用Object.defineProperty()時如果不指定configurable,enumerable,writable,默認都是false。

訪問器屬性 訪問器屬性不包含數據值,它們包含一對getter和setter函數。 getter:讀取訪問器屬性調用 setter:寫入訪問器屬性調用 4個特性: [[Configurable]]:表示能否通過delete刪除屬性、能否修改屬性的特性,能否把屬性修改為訪問器屬性。默認true。 [[Enumerable]:表示能通過for-in循環返回屬性。默認true。 [[getter]]:讀取訪問器屬性調用,默認undefined。 [[setter]]:寫入訪問器屬性調用,默認undefined。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的面向对象的程序设计——理解对象的全部內容,希望文章能夠幫你解決所遇到的問題。

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