访问对象属性:
person.name; preson["name"]; //在使用方括号语法时,要将访问的属性以字符串德兴市放在方括号中属性名中若包含可能会导致语法错误的字符,比如空格或者保留字,要用方括号访问!不能用点表示法访问。
person['first name']='menghua';点表示法比较常用;
有4个描述其行为的特性
writable,(能否修改属性值)
configurable(定义对象的属性能否delete),
enumerable(能否通过for-in 循环返回属性),
value,属性值
通过Object.defineProperty()来修改属性。
Object.defineProperty(对象,属性名,4个特性)
var person={}; Object.defineProperty(person,'name',{ writable:false, configurable:false, value:'menghua' } )configurable
enumerable
get
set
Object.defineProperties()
var person={}; Object.defineProperties(person,{ _name:{ writable:true, value:'menghua' }, age:{ writable:true, value:24 }, name:{ get:function(){ return this._name; }, set:function(newValue){ if(newValue>2017) { this._name='sun menghua'; this.age =newValue-2017; } } } }) person.name=2018 console.log(person.age); //25 console.log(person._name); // sun menghuaObject.getOwnPropertyDescriptor(对象,属性名).特性
var descriptor=Object.getOwnPropertyDescriptor(person,'name'); console.log(descriptor.value); //sun menghua console.log(descriptor.writable); //true更多专业前端知识,请上 【猿2048】www.mk2048.com