面向对象(一):对象属性
来源:互联网 发布:plc称重模块怎样编程 编辑:程序博客网 时间:2024/05/19 00:56
对象属性类型
每个对象都是基于一个引用类型创建的
1. 数据属性
2. 访问器属性
【数据属性】
4个特性:
1. [[Configurable]]:能否delete属性从而重新定义属性、能否修改属性的特性、能否把属性改为访问器属性2. [[Enumerable]]:能否用for-in循环返回属性3. [[Writable]]:能否修改属性的值4. [[Value]]:包含该属性的值**已经在对象上直接定义的属性,其[[Confgurable]]、[[Enumerable]]、[[Writable]]默认值为true,[[Value]]默认值为undefined**通过Object.defineProperty()方法创建一个新属性时,其[[Confgurable]]、[[Enumerable]]、[[Writable]]默认值为false。
修改属性默认特性的方法:
Object.defineProperty(属性所属对象,“属性名”,{ 要修改的特性1:修改值, 要修改的特性2:修改值, …… });**需要注意的是,一旦把configurable修改为false,就再也不能修改该属性的特性(除了writable,可以由true改为false,但不能由false改为true);**当configurable修改为false时,包括configurable本身也不能改为true;**当configurable修改为false时,该属性会被禁止删除
var person = {};Object.defineProperty(person,"name",{ configurable: false, value: "karine"});console.log(person.name); //karine
【访问器属性】
4个特性:
1. [[Configurable]]:能否delete属性从而重新定义属性、能否修改属性的特性、能否把属性改为访问器属性。默认值为false2. [[Enumerable]]:能否用for-in循环返回属性。默认值为false3. [[Get]]:读取属性时调用的函数。默认值为undefined4. [[Set]]:写入属性时调用的函数。默认值为undefined
访问器属性不能直接在对象上定义,必须Object.defineProperty(属性所属对象,“属性名”,{ 要定义的特性1:值, 要定义的特性2:值, …… }); 旧方法: 对象名.__defineGetter__(“属性名”,function(){ …;}); 对象名.__defineSetter__(“属性名”,function(){ …;});
定义对象的属性:
1. 一个属性
Object.defineProperty(属性所属对象名,“属性名”,{ 特性1:……, 特性2:……, …… });
2. 多个属性
Object.defineProperties(对象名,{ 属性1:{ 特性1: …, 特性2: …, … }, 属性2:{ 特性1: …, 特性2: …, … } });
读取对象的属性特性
1. var descriptor = Object.getOwnPropertyDescriptor(对象名,"属性名"); //返回一个对象 descriptor.特性;2. Object.getOwnPropertyDescriptor(实例名,“属性名”)//取得实例属性的属性特性3. Object.getOwnPropertyDescriptor(构造函数名.prototype, "属性名")//取得原型属性的属性特性
阅读全文
0 0
- 面向对象(一):对象属性
- 面向对象(一):对象属性
- 初学者沟通:Js面向对象设计(一):对象属性
- 面向对象(一)
- 面向对象(一)
- 面向对象(一)
- 面向对象(一)
- (一)面向对象
- 面向对象(一)
- 面向对象(一)
- 面向对象(一)
- 面向对象(一)
- 面向对象(一)
- 面向对象(一)
- 面向对象(一)
- 面向对象(一)
- 面向对象(一)
- 面向对象(一)
- BZOJ 4236: JOIOJI
- postfix+mysql(数据库对邮件的管理)
- jquery.validate的使用,注册验证
- HDU
- 1166: 判断升序
- 面向对象(一):对象属性
- 图的存储结构
- 【Shader基础篇】之纹理
- Polya原理的应用经典实例
- 阿牛的EOF牛肉串
- 复习
- Zookeeper注册中心和Dubbo-Admin管理平台的搭建 http://blog.csdn.net/chinahuyong/article/details/69567840
- I/O复用之select、poll、epoll函数
- linux-基本命令