属性类型



2)属性类型

数据属性(重要的话,在本身是true,在方法中默认是false

[[Configurable]] 能否删除从而重新定义,能否修改属性的特性,能否把属性改为访问器属性

[[Enumerable]]能否for-in

[[writable]]能否写

[[Value]]读写

要修改属性的默认特性,可以使用Object.defineProperty(a,b,c)分别是属性所在的对象,属性的名字,一个描叙符对象(上面的四个中的一个或者多个

var person=new Object();
Object.defineProperty(person,"name",{writable:false,value:"fuck"});
alert(person.name);
person.name="you";//writable:false并不能修改
alert(person.name);

访问器属性

[[Configurable]]能否删稠从而重新定义,能否修改属性的特性,能否把属性改为数据属性

[[Enumerable]]for-in

[[Get]]

[[Set]]

访问器属性不能直接定义,只能通过Object.defineProperty(a,b,c)来定义

var book={
_year:2004,
edition:1
};
Object.defineProperty(book,"year",{
get:function () {
return this._year;
},
set:function (a){
if(a>2004){
this._year=a;
this.edition+=a-2004;
}
}
});
book.year=2006;
alert(book.edition);//3

由于实际情况下一次要修改多个属性,所以有方法Object.defineProperties(a,b)分别为要修改的对象,第二个对象是对象的属性和修改的属性合在一起(请注意格式

            var book={};
            Object.defineProperties(book,{//字面量
                _year:{
                    writable: true,//很关键
                    value:2004
                },//逗号
                edition:{
                    writable: true,
                    value:1
                },
                year:{
                    set:function  (a) {
                        if(a>2004){
                            this._year=a;
                            this.edition+=a-2004;
                        }
                    },
                    get:function  () {
                        return this._year;
                    }
                }
            });
            console.log(book.year,book.edition);
            book.year=2007;
            console.log(book);

读取属性特性

Object.getOwnpropertyDescriptor(a,b)属性所在的对象和属性名称

book.year=2007;
            var a=Object.getOwnPropertyDescriptor(book,"_year");
            console.log(a.value,a.configurable,a.writalbe);
时间: 2024-10-08 10:14:01

属性类型的相关文章

PHP.38-TP框架商城应用实例-后台15-商品属性与库存量1-不同商品(唯一属性、可选属性),属性类型

思路: 1.不同商品属于不同的类型,如:手机.服装.电脑等类型 2.不同的类型有不同的属性,其中分为唯一属性和可选属性,如服装:可选属性{尺寸:S,M,L--;颜色:白色,黑色--}唯一属性:材质 首先把类型与属性关联起来 1.建表 类型表{p39_type} drop table if exists p39_type; create table p39_type ( id mediumint unsigned not null auto_increment comment 'Id', type

java获取对象属性类型、属性名称、属性值

因为项目需要用到,于是简单封装了一些常用的操作: [java] view plaincopy /** * 根据属性名获取属性值 * */ private Object getFieldValueByName(String fieldName, Object o) { try { String firstLetter = fieldName.substring(0, 1).toUpperCase(); String getter = "get" + firstLetter + field

高程第六章--面向对象程序设计--属性类型

ES有两种属性类型:数据属性和访问器属性. 一.数据属性4个描述其行为的特性. 1:[[Configurable]]:表示能否通过delete删除属性从而重新定义属性. 2: [[Enumerable]]:表示能否通过for-in循环返回属性 3: [[Writable]]:表示能否修改属性的值 4:[[Value]]:包含这个属性的属性值 要修改属性默认的特性,必须使用ES5的defineProperty()方法 //"use strict"; var person = {}; Ob

对象的属性类型详解

对象的属性类型,描述了属性(property)的各种特征. ECMAScript中有两种属性类型:数据属性和访问器属性. 1. 数据属性. 数据属性包含一个数据值的位置.在这个位置可以读取和写入值.数据属性有4个描述其行为的特性: [configurable]: 表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性. [enumerable]: 表示能否通过for-in循环返回属性. [writable]: 表示能否修改属性的值. [value]:

JavaScript 属性类型(数据属性 访问器属性)

ECMA-2把对象定义为:“无序属性的集合,其属性可以包含基本值.对象或者函数.” 严格来说,这就相当于说对象是一组没有特定顺序的值.对象的属性或方法都有一个名字,而每个名字映射到一个值.我们可以把ECMAScript的对象想象成散列表,无非就是一组名值对,其中值可以是数据或函数.(高程三 P139) [译]JavaScript中对象的属性   <高程三 P139 属性类型> JavaScript笔记--数据属性和访问器属性 JavaScript中有两种不同类型的属性:命名数据属性(named

C# 取得对象属性类型

1.对象 Object obj; 2.对象属性 Type postType = obj.GetType(); PropertyInfo[] postTypeInfos = postType.GetProperties(); 3.对象属性类型 foreach (PropertyInfo p in postTypeInfos)       {  if (p.PropertyType.FullName == typeof(DateTime).FullName)  {    Object pValue

获取javabean 属性,类型,值

/*** 获取bean 属性,类型,值** @param object*/public Map<String, Object> printFieldValue(Object object) throws InvocationTargetException, IllegalAccessException {Map<String, Object> map = new HashMap<>();Method[] methods = object.getClass().getMe

Entity Framework Code First (四)Fluent API - 配置属性/类型

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 上篇博文说过当我们定义的类不能遵循约定(Conventions)的时候,Code First 提供了两种方式来配置你的类:DataAnnotations 和 Fluent API, 本文将关注 Fluent API.  一般来说我们访问 Flu

spring jpa之实体属性类型转换器AttributeConverter

1.介绍接口AttributeConverter<x, y> 此接口用于转化实体属性的,但id属性和关系属性不可用.它有两个方法: 1.y convertToDatabaseColumn(x)  作用:将实体属性x转化为y存储到数据库中,即插入和更新操作时执行: 2.x convertToEntityAttribute(y)  作用:将数据库中的字段y转化为实体属性x,即查询操作时执行 2.实现的demo 需求:某数据库表中的状态列,1表示"启用",-1表示"禁用