摘要:面向對象的程序設計把對象定義為無須屬性的集合,其屬性可以包含基本值對象或者函數。接收三個參數屬性所在的對象,屬性的名字和一個描述符對象。描述符對象必須是,,,。
面向對象的程序設計
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。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/94555.html
摘要:是完全的面向對象語言,它們通過類的形式組織函數和變量,使之不能脫離對象存在。而在基于原型的面向對象方式中,對象則是依靠構造器利用原型構造出來的。 JavaScript 函數式腳本語言特性以及其看似隨意的編寫風格,導致長期以來人們對這一門語言的誤解,即認為 JavaScript 不是一門面向對象的語言,或者只是部分具備一些面向對象的特征。本文將回歸面向對象本意,從對語言感悟的角度闡述為什...
showImg(https://segmentfault.com/img/remote/1460000007103938?w=391&h=247); 文章最初發表于我的個人博客非典型性程序猿 對于剛接觸JAVA或者其他面向對象編程語言的朋友們來說,可能一開始都很難理解面向對象的概念以及類和對象的關系。筆者曾經帶過一個短期培訓班教授java入門基礎,在最后結束課程的時候,還有很多同學不太理解面向對象...
摘要:用代碼可以這樣描述安全到達國外面向過程既然說了面向對象,那么與之對應的就是面向過程。小結在這篇文章中,介紹了什么是面向對象和面向過程,以及中對象的含義。 這是 javascript 面向對象版塊的第一篇文章,主要講解對面向對象思想的一個理解。先說說什么是對象,其實這個還真的不好說。我們可以把自己當成一個對象,或者過年的時候相親,找對象,那么你未來的老婆也是一個對象。我們就要一些屬性,比...
摘要:是一種典型的面向對象編程語言。這篇文章主要是來初步理解一下面向對象的思維為下面的內容先給一個基礎。針對面向對象編程的更多內容,會在后面的文章里面詳細解釋。他們都稱之為對象。之后,我們再用編程語言,把這種映射編寫出來,就是的面向對象編程啦。 showImg(https://segmentfault.com/img/remote/1460000012983458?w=900&h=500);...
摘要:很多情況下,通常一個人類,即創建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:很多情況下,通常一個人類,即創建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
閱讀 2288·2023-04-25 14:22
閱讀 3733·2021-11-15 18:12
閱讀 1293·2019-08-30 15:44
閱讀 3215·2019-08-29 15:37
閱讀 638·2019-08-29 13:49
閱讀 3454·2019-08-26 12:11
閱讀 866·2019-08-23 18:28
閱讀 1581·2019-08-23 14:55