概述:
每个对象的属性,都有属于它的属性描述对象(下文称为SB)。SB的作用就是来定义一个属性的特性,比如这个属性是否可写,是否可遍历等等。
本文主要涉及SB的get与set两个属性。
属性除了直接定义以外,还可以用存取器定义(get与set)。其中,存值函数称为 setter,使用属性描述对象的set属性;取值函数称为 getter,使用属性描述对象的get属性。
一个属性的SB默认没有get与set
所以,看下文...
语法:
首先来看如何设置属性的存取器,有三种方法:
①,直接在对象中定义
②,用Object.defineProperty()方法
③,如果想修改多个属性,用Object.defineProperties()方法
使用:
get方法会在每次读取属性的时候调用,你读取到的该属性的值为get方法的返回值!!!
当你每次给一个属性赋值的时候调用set方法,set方法接受一个参数,参数为你赋的值!!!
注意:
①,一旦给属性设置了get或set,那么你再怎么给这个属性赋值也是徒劳(除了给set函数传参),每次读取该属性,返回的都是get函数的返回值!
②,因为一旦设置了get或set,则SB的value属性不可被定义,writable属性为false。value代表属性的值,writable代表是否可写。如果强行修改SB,则报错!!!