美文网首页
JS的数据属性和访问器属性

JS的数据属性和访问器属性

作者: 灯不梨喵 | 来源:发表于2017-11-20 15:13 被阅读0次

在高程这本书里面,介绍了ECMA的两种属性:数据属性和访问器属性

两种属性包含的东西不再赘述和解释

只能通过对象方法访问的属性前缀为下划线(说实话真没看出来怎么就只能通过对象方法访问了)

例:

var book={

_year:2017,edition:1

};

Object.defineProperty(book,"year",{

get: function(){return this._year;},

set: function(newValue){

if(newValue>2017){

this._year=newValue;

this.edition+=newValue-2017;

}

}

});

console.log(book.year,book._year)//2017 2017

发现输出数据属性year和访问器属性_year都是可行的。

但是当对数据进行改变时,又会怎么样呢?我们预期是希望edition随着year更新。

book._year=2018;

console.log(book.year,book._year,book.edition)//2018 2018 1

book.year=2018;

console.log(book.year,book._year,book.edition)//2018 2018 2

可以看到通过访问器属性的set函数,edition按照我们所想那样变动了,省得自己再手动设置editon;而直接设置数据属性,则麻烦了点。

基本上,可以把访问器属性当作一个doorkeeper,它把形如_year等属性保护起来,你要找_year的时候,给访问器过目一下,他不但把你要找的东西给你找出来,还顺便给了你售后服务。这比你直接吆喝来丢三落四好多了是吧。

相关文章

  • js 数据属性和访问器属性

    数据属性 数据的获取与设置

  • 面向对象

    一、属性类型 数据属性 访问器属性 1、数据属性 2、访问器属性 例: 定义单个访问器属性 定义多个属性 二、创建...

  • vue双向数据绑定

    Vue双向数据绑定原理 1.属性访问器 ECMAScript中的属性分为两种:数据属性和访问器属性 1 数据属性数...

  • getter和setter 到底是个啥玩意

    js中一共有两种属性,一种数据属性,一种访问器属性 访问器属性不包函数值;包含一对getter和setter函数(...

  • JS的数据属性和访问器属性

    在高程这本书里面,介绍了ECMA的两种属性:数据属性和访问器属性 两种属性包含的东西不再赘述和解释 只能通过对象方...

  • Vue中Object.defineProperty()的应用

    一、基本定义1.js中的对象属性有两种:数据属性和访问器属性。每种属性都包含各自的特性,供内部使用,js不能直接访...

  • JavaScript面向对象

    属性类型 数据属性和访问器属性。 数据属性 [[Configurable]]:表示能否通过delete删除属性从而...

  • JS对象数据属性和访问器属性

    1.数据属性 定义在对象内部的叫做数据,数据具有属性:4个属性如下 前三个默认都是true,最后一个默认是unde...

  • JAVASCRIPT数据属性与访问器属性

    ES5中对象的属性可以分为‘数据属性’和‘访问器属性’两种。 数据属性一般用于存储数据数值,访问器属性对应的是se...

  • 理解对象之 —— 数据属性与访问器属性

    ES5中对象的属性可以分为‘数据属性’和‘访问器属性’两种。 数据属性一般用于存储数据数值,访问器属性对应的是se...

网友评论

      本文标题:JS的数据属性和访问器属性

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