面向对象程序设计

156 阅读1分钟
面向对象

面向对象的语言有一个标志,它们都有类的概念,通过类可以创建任意多的具有相同属性和方法的对象。


什么是对象呢? ECMA-262定义对象为: 无序属性的集合,其属性值可以包括基本值、对象或者函数。

属性类型

定义只有字啊内部采用的特性时,描述了属性的各种特征
为了表示特性是内部值,把它们放在两对方括号中,例如  [[Enumerable]]

ECMAScript包含两种属性: 数据属性 和 访问器属性


数据 属性

[[Configurable]]  表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,
能否把属性修改为访问器属性,默认值为true

[[Enumrable]] : 能否 通过for-in循环返回属性, 默认为true

[[Writable]] 表示是否可以修改属性的值,默认为true

[[Value]] 包含属性的数据值  读取从这个位置 读  ;写入,把新值保存在这里  默认为undefined

要修改特性,必须使用Object.defineProperty() 方法

 var person = {};

    Object.defineProperty(person, 'name', {
        writable: false,
        value: 'tom'
    })

    console.log(person.name) // tom
    person.name = 'jerry'
    console.log(person.name)  // tom