学JavaScript 三 面向对象的程序设计
面向对象:百度百科
代码:
var person = new Object(); person.name = "Jack"; person.age = 18; person.sayName = function(){ alert(this.name) }
上面的例子创建了一个名为person的对象,并为它添加 了两个属性和一个方法。
上面的例子也可以写成:
var person = new { name : "Jack", age : 18, sayName : function(){ alert(this.name); } }
这个例子的对象与前面例子中的person对象是一样的。
属性类型:数据属性和访问器属性
- 数据属性 Configurable:表示是否能通过delete删除属性,默认为true。
- 数据属性 Enumrable :表示是否通过for-in循环返回属性,默认为true。
- 数据属性 Writable :表示能否修改属性的值,默认true。
- 数据属性 Value :包含这个属性的值,默认undefined。
- 访问器属性 Configurable:表示是否能通过delete删除属性,默认为true。
- 访问器属性 Enumrable :表示是否通过for-in循环返回属性,默认为true。
- 访问器属性 Get :读取属性时调用的函数。默认为undefined。
- 访问器属性 Set :写入属性时调用的函数。默认为undefined。
单属性创建:
var person = {}; Object.defineProperty(person,"name",{ configurable : false, value : "Jack" }) console.log(person.name); //Jack delete person.name; console.log(person.name);
上面代码,在非严格模式下什么都不发生,在严格模式下delete会导致错误
多属性创建:
var person = {}; Object.defineProperties(person,{ name : { writable : false, configurable : false, value : "Jack" }, age : { writable : true, value : 18 } }) console.log(person.name); //Jack console.log(person.age); //18 person.name = "MACK"; person.age = 90; console.log(person.name);//Jack console.log(person.age); // 90
Java JavaScript ECMAScript 小严

浙公网安备 33010602011771号