美文网首页
面向对象——属性

面向对象——属性

作者: IvyAutumn | 来源:发表于2018-12-13 15:52 被阅读0次

ECMAScript中有两种属性:数据属性和访问器属性

数据属性

数据属性包含一个数据值的位置。在这个位置可以读取和写入值。数据属性有4个描述其行为的特性。

  • [[Configurable]] :表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。
  • [[Enumerable]] :表示能否通过for-in循环返回属性。
  • [[Writable]] :表示能否修改属性的值。
  • [[Value]] :包含这个属性的数据值。读取属性值的时候,从这个位置读;写入属性值的时候,把新值保存在这个位置。这个特性的默认值为undefined。

修改属性默认的特性
使用ECMAScript5的Object.defineProperty()方法。在调用此方法创建一个新的属性时,如果不指定,configurable、enumerable和writable特性的默认值都是false。


访问器属性

访问器属性不包括数据值;它包含一对儿getter和setter函数。在读取访问器属性时,会调用getter函数,这个函数负责返回有效的值;在写入访问器属性时,会调用setter函数并传入新值,这个函数负责决定如何处理数据。访问器属性有如下4个特征。

  • [[Configurable]] :表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为数据属性。
  • [[Enumerable]] :表示能否通过for-in循环返回属性。
  • [[Get]] :在读取属性时调用的函数。默认值为undefined。
  • [[Set]]: 在写入属性时调用的函数。默认值为undefined。
    同样使用Object.defineProperty()来进行定义

定义多个属性的方法

Object.defineProperties()方法

读取属性特性的方法

Object.getOwnPropertyDescriptor()方法,可以取得给定属性的描述符。这个方法接受两个参数:属性所在的对象和要读取其描述符的属性名称。返回值是一个对象。

var descriptor = Object.getOwnPropertyDescriptor(book, "year");
alert(descriptor.value);
alert(descriptor.configurable);

相关文章

  • Python学习-面向对象

    查看所有Python相关学习笔记 面向对象 面向对象知识点汇总: 面向对象静态属性实例属性(self)静态方法(@...

  • 第六章 面向对象的程序设计(js高级程序设计)

    Object-Oriented 面向对象 理解对象 对象属性分为 【数据属性】 和 【访问器属性】 对象属性中的【...

  • 面向对象:创建对象&继承

    博客内容:什么是面向对象为什么要面向对象面向对象编程的特性和原则理解对象属性创建对象继承 什么是面向对象 面向对象...

  • 面向对象——属性

    ECMAScript中有两种属性:数据属性和访问器属性 数据属性 数据属性包含一个数据值的位置。在这个位置可以读取...

  • javaScript高级程序设计读书笔记(六)

    面向对象的程序设计,面向对象的语言有类的概念,通过类创造多个具有相同的属性和方法的对象。 对象 属性类型 数据属性...

  • 面向对象

    面向对象方法概论 对象、结构 概念呢 特征 1.1 什么是面向对象 面向对象方法的基本思想 对象 属性-静态特征 ...

  • 面向对象_初识

    目录 面向对象编程介绍 类与对象介绍 私有属性与私有方法 面向对象编程 1. 面向对象编程介绍 面向对象编程:Ob...

  • Python 设计模式——理解面向对象编程

    面向对象编程 面向对象的编程范式引入了对象的概念,对象具有属性和用来处理属性的成员函数。比如对象 Car 拥有多种...

  • 面向对象

    面向对象基础 目标 理解面向对象 类和对象 添加和获取对象属性 魔法方法 一. 理解面向对象 面向对象是一种抽象化...

  • 2019-07-03

    面向对象 面向对象与面向过程 面向对象就是将你的需求抽象成一个对象, 然后针对这个对象分析其特性(属性)与动作(方...

网友评论

      本文标题:面向对象——属性

      本文链接:https://www.haomeiwen.com/subject/cyfbhqtx.html