创建自定义对象最简单的方式就是创建一个object实例。然后添加方法和实例
var person = new Object() person.name = "hi" person.sayName = function() { alert(this.name)
对象字面量(创建方式)
var person = { name: "hi", sayName: function() { alert() } }
为了实现js引擎。es定义了只有内部才用的特性(不能直接访问)。描述了属性
es有两种属性:数据属性和访问器属性
数据属性包含一个数据值的位置/ 这个位置可以读取和写入值。数据属性有四个描述其行为的特性
像前面那种直接在对象上定义属性,它们的前三项特性都是true。最后一项被设置为指定的值。
var person = { name:"hi" } //这里创建了一个名为name的属性,为它指定的值是“hi”,也就是说[[Value]]特性将被设置为“hi”,而对这个值的任何修改都会反应在这个位置
要修改属性的默认的特性。需要用到Object.defineProperty()方法//同时也可以这样创建一个属性
//作为创建一个新的属性,如果不特别指定。configurable,enumerable,writable都默认为false。
//当configurable设置为false的时候,就不能再变回来。只能修改writable属性(当writable为true的时候)
//也就是说该属性的这四个特性都不能被更改了(除了writable,但是当writable被设置为false后也不可以更改)
//当configurable设置为true的时候,其他属性可以被任意修改
它接受三个参数(属性所在的对象,属性的名字,一个描述符对象)。描述符对象的属性必须是那四个。设置一个或者多个值
可以修改对应的特性值。
var person = {} Object.defineProperty(person, "name", { writeable: false value:"hi" }) alert(person.name) // "hi" person.name = "bye" alert(person.name) // "hi"
原文:https://www.cnblogs.com/-constructor/p/11869102.html