美文网首页
Object-属性类型

Object-属性类型

作者: Martin_Luo | 来源:发表于2019-01-18 16:08 被阅读0次

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

  1. 数据属性

数据属性包含一个数据值的位置。在这个位置可以读取和写入值。数据属性有4个描述其行为的特征。
1.[[writable]]: 表示能否修改属性的值。默认值为 true
2.[[Enumerable]]: 表示能否通过for-in循环返回属性。默认值为 true
3.[[Configurable]]: 表示能否通过delete删除属性从而从新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。默认值为 true
4.[[value]]: 包含这个属性的数据值。默认值为 undefined

修改属性默认的特征,必须使用Object.defineProperty()方法。描述对象的属性必须是:writable、Enumerable、Configurable、value。可以设置一个或多个值,可以修改对应的特性值。

let person = {}
Object.defineProperty(person, 'name', {
    writable: false,
    value: 'zhang'
})
console.log(person.name) // zhang
person.name = 'haha'
// 数据未被修改
console.log(person.name) // zhang

2.访问器属性

有4个特征
1.[[Get]]: 在读取属性时调用的函数。默认值 undefined
2.[[Set]]: 在写入属性时调用的函数。默认值 undefined
3.[[Enumerable]]: 表示能否通过for-in循环返回属性。默认值为 true
4.[[Configurable]]: 表示能否通过delete删除属性从而从新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。默认值为 true

let person = {
    _name: 'zhang',
    age: 18
}
            
Object.defineProperty(person, 'name', {
    get: function() {
    return this._name
  },
  set: function(newValue) {
    this._name = newValue
    this.age = 21
  }
})
            
person.name = 'haha'
console.log(person.name) // haha
console.log(person.age) // 21

相关文章

  • Object-属性类型

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

  • 数据类型-对象 Object-属性操作

    读取属性值 使用点.运算符 var person = {'name': 'Sumi',}person.name ...

  • 有关类和对象

    类和对象 -class object-类是对象的抽象,对象是类的实例 属性 -静态特征 行为 动态特征...

  • 由对象的属性说到几个容易混淆的js内建方法

    前言 关于属性 属性类型: 对象有两种属性类型:String类型属性 与 Symbol类型属性。它们通常被称为属性...

  • 2020-05-22

    类型属性与非类型属性的区别 结构体SomeStructure增加一个常量存储属性 类型属性调用 非类型属性调用 实...

  • React Native 之propTypes 属性声明和属性确

    属性声明的示例 属性确认的类型 属性为任意类型 属性是否为 JavaScript 基本类型 属性是某个 React...

  • 如何使用属性_05

    Shaderlab属性类型和CG变量类型的匹配关系 ShaderLab属性类型对应的CG属性类型 Color,Ve...

  • Swift-属性和方法

    计算型属性 类型属性(全局属性) 类型方法(全局方法) 属性观察器

  • JS基础之面向对象-基础

    属性类型 说到属性类型,指的是一个对象所拥有的所有属性的特征。包括两类:数据属性和访问器属性。属性类型的存在就是为...

  • Flutter学习笔记5-dart:convert

    引用 JSON 解码(JSON String->Object) 编码(Object->JSON String) 支...

网友评论

      本文标题:Object-属性类型

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