摘要:表示能否修改屬性的值。對于直接在對象上定義的屬性,這個(gè)特性的默認(rèn)值為。默認(rèn)值為設(shè)置一個(gè)屬性的值會(huì)導(dǎo)致其他屬性的變化如果的有值,就不要對再設(shè)置屬性所在的對象要讀取其描述符的屬性名稱
對象定義
對象定義:無序?qū)傩缘募希鋵傩钥梢园局怠ο蠡蚝瘮?shù)
對象就是 鍵值對 其中值可以是數(shù)據(jù)和函數(shù)
對象方法就是對象的屬性 不過這個(gè)屬性是函數(shù)
var p = new Object() p.name = "nike" p.age = "10" p.job = "joker" p.sayName = function() { console.log(this.name) } console.log(p.age)//10 p.sayName() //nike
var p = { name: "nike", age: "10", job: "joker", sayName: function(){ console.log(this.name) } } console.log(p.job)//joker p.sayName() //nike屬性類型 數(shù)據(jù)屬性
Configurable:表示能否通過 delete 刪除屬性從而重新定義屬性,能否修改屬性的特
性,或者能否把屬性修改為訪問器屬性。像前面例子中那樣直接在對象上定義的屬性,它們的這個(gè)特性默認(rèn)值為 true。
Enumerable:表示能否通過 for-in 循環(huán)返回屬性。像前面例子中那樣直接在對象上定
義的屬性,它們的這個(gè)特性默認(rèn)值為 true。
Writable:表示能否修改屬性的值。像前面例子中那樣直接在對象上定義的屬性,它們的
這個(gè)特性默認(rèn)值為 true。
Value:包含這個(gè)屬性的數(shù)據(jù)值。讀取屬性值的時(shí)候,從這個(gè)位置讀;寫入屬性值的時(shí)候,把新值保存在這個(gè)位置。這個(gè)特性的默認(rèn)值為 undefined。
修改這 3 個(gè)值需要用 es5 的Object.defineProperty()方法
這個(gè)方法接收 3 個(gè)參數(shù):屬性所在的對象、屬性的名字、描述符對象
描述符對象的屬性必須是:configurable enumerable writeble value
var person = {} Object.defineProperty(person, "name", { writable: true, value: "nike" }) console.log(person.name)//nike person.name = "gray" console.log(person.name)//gray
var person = {} Object.defineProperty(person, "name", { configurable: true, value: "nike" }) console.log(person.name)//nike delete person.name console.log(person.name)//undefined訪問器屬性
Configurable:表示能否通過 delete 刪除屬性從而重新定義屬性,能否修改屬性的特性,或者能否把屬性修改為數(shù)據(jù)屬性。對于直接在對象上定義的屬性,這個(gè)特性的默認(rèn)值為true
Enumerable:表示能否通過 for-in 循環(huán)返回屬性。對于直接在對象上定義的屬性,這個(gè)特性的默認(rèn)值為 true。
Get:在讀取屬性時(shí)調(diào)用的函數(shù)。默認(rèn)值為 undefined。
Set:在寫入屬性時(shí)調(diào)用的函數(shù)。默認(rèn)值為 undefined
var person = { oldname: "jac", age: "10" } Object.defineProperty(person, "newname", { get: function(){ return this.oldname }, set: function(value){ this.oldname = value } }) person.newname = "bool" console.log(person.oldname)//bool //設(shè)置一個(gè)屬性的值會(huì)導(dǎo)致其他屬性的變化
var person = { name: "handsome" } Object.defineProperties(person, { boy: { get: function () { return this.name + " hua" }, set: function (value) { return this.name = value } }, man: { get: function () { return this.name }, set: function (value) { return this.name = value } }, year: { value: 20 } }) console.log(person.boy)//handsome hua console.log(person.man)//handsome //如果person的name有值,就不要對name再設(shè)置 get set var descriptor = Object.getOwnPropertyDescriptor(person, "year") //屬性所在的對象、要讀取其描述符的屬性名稱 console.log(descriptor.value)//20
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/84642.html
摘要:用代碼可以這樣描述安全到達(dá)國外面向過程既然說了面向?qū)ο螅敲磁c之對應(yīng)的就是面向過程。小結(jié)在這篇文章中,介紹了什么是面向?qū)ο蠛兔嫦蜻^程,以及中對象的含義。 這是 javascript 面向?qū)ο蟀鎵K的第一篇文章,主要講解對面向?qū)ο笏枷氲囊粋€(gè)理解。先說說什么是對象,其實(shí)這個(gè)還真的不好說。我們可以把自己當(dāng)成一個(gè)對象,或者過年的時(shí)候相親,找對象,那么你未來的老婆也是一個(gè)對象。我們就要一些屬性,比...
摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對象。對象就是數(shù)據(jù),對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍(lán)圖或原型。在中,對象通過對類的實(shí)體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對象。對象就是數(shù)據(jù),對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍(lán)圖或原型。在中,對象通過對類的實(shí)體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對象。對象就是數(shù)據(jù),對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍(lán)圖或原型。在中,對象通過對類的實(shí)體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:返回值是一個(gè)對象,如果是訪問器屬性,這個(gè)對象的屬性有和如果是數(shù)據(jù)屬性,這個(gè)對象的屬性有和。上一篇面向?qū)ο蟀鎵K之對象屬性下一篇面向?qū)ο蟀鎵K之創(chuàng)建對象 這是 javascript 面向?qū)ο蟀鎵K的第三篇文章,主要講解的是多個(gè)屬性的定義以及讀取屬性的特性。前面這幾章內(nèi)容目的在于加深對對象的理解,這樣可以利于理解后面的原型鏈以及繼承方面的知識(shí),或者你也可以了解一下不一樣的 javascript ...
摘要:上一篇面向?qū)ο蟀鎵K之理解對象下一篇面向?qū)ο蟀鎵K之定義多個(gè)對象屬性以及讀取屬性特性 這是 javascript 面向?qū)ο蟀鎵K的第二篇文章,主要講解的是對象的屬性,首先創(chuàng)建一個(gè)對象: var person = { name: Nicholas, age: 29, job: Software Engineer, sayName: function () { conso...
閱讀 2885·2021-10-26 09:49
閱讀 3221·2021-10-14 09:42
閱讀 2042·2021-09-13 10:31
閱讀 2580·2019-08-30 11:13
閱讀 2962·2019-08-29 16:31
閱讀 1068·2019-08-29 13:58
閱讀 1859·2019-08-29 12:12
閱讀 3556·2019-08-26 13:48