javascript面向对象编程探讨

ECMA-262定义一个对象作为一个集合的无序的属性,这些属性可以包含基本的价值观,对象或函数

理解对象的最简单的方法是创建对象的实例,并向它添加属性和方法。

复制代码代码如下所示:

var =新对象();

person.name =徐磊;

person.age =23;

person.job =前端工程师;

person.sayname =函数(){

警报(这个名字);

}



也可以用这种方式写。

复制代码代码如下所示:

var

名称:徐蕾

年龄:23岁,

工作:前端项目

sayname:函数(){

警报(这个名字)

}

}



1。属性类型:数据属性及其属性的访问



1。数据属性,以及描述它们行为的4个特性

{ }:可配置是否可以被删除的属性,使我们可以重新定义属性,我们是否可以修改属性的属性,或者我们是否可以修改属性访问器的属性,和默认值为true。

{枚举}:指示是否能够返还财产的,与真正的默认值

{ { } }:表示是否可以修改属性,默认值为真。

{值}:包含此属性的数据值。默认值未定义。

复制代码代码如下所示:

var

名称:旭蕾

}



一个对象被创建在这里,和价值是Xulei

要修改一个属性的默认属性,您必须使用ecmascript5的object.defineproperty(对象的属性设置,的属性,描述对象的名称)

描述对象必须是可配置的,可枚举,可值

复制代码代码如下所示:

var庇隆{ }

object.defineproperty(庇隆,名字

可写的:不能修改假属性

价值:Xu Lei徐磊

});

警报(庇隆的名字); / /徐雷-徐磊

peron.name =徐雷;

警报(庇隆的名字); / /徐雷-徐磊



以上操作是不严谨的方式忽略,如果抛出在严格模式是例外。

属性定义为一个不可配置的属性后,就不能重新配置它了。

在大多数情况下,没有必要利用这些先进的功能的object.defineproperty提供()方法,但是它的理解很有用。

建议读者不要使用此方法对IE8。

2。访问它的属性,有4个特性

{ }:可配置是否可以被删除的属性,使我们可以重新定义属性,我们是否可以修改属性的属性,或者我们是否可以修改属性访问器的属性,和默认值为true。

{枚举}:指示是否能够返还财产的,与真正的默认值

{ }:读取时调用的函数

{ }:当属性写入时调用的函数