JS原型设计模式(三)
来源:互联网 发布:境外网络代理 编辑:程序博客网 时间:2024/05/18 01:04
在看书籍的时候看到了关于获取对象属性的集中方式,下面给一一的介绍一下:
var Person = function () { this.class='ddd';};var pp=function(){};Person.prototype.name = 'tlc';Person.prototype.age = '25';Person.prototype.sex = 'boy';Person.prototype.sayInfo = function () { console.info(this.name + "--" + this.age + "--" + this.sex)};var person1 = new Person();var person2 = new Person();
object.hasOwnProperty():用于判断当前对象是否包含某一个属性,但是却把原型链对象上的属性给过滤掉
console.log(person1.hasOwnProperty('class'));//true 因为Person中有这个属性console.info(person1.hasOwnProperty('name'));//false 因为name属性在原型连对像上
for...in:这个循环会遍历当前对象的所有可枚举,可访问的属性,也包含此对象的原型链上对象的所有可枚举属性
for(var prop in person1){ console.log(prop);//class,name.age,sex,sayInfo}但是不会返回toString,toLocalString...等函数,这是因为js给定义成了不可枚举的属性
in:单独使用的时候会返回true或者false,这个是判断属性是否是在通过对象能够访问的属性时返回true,不论是原型链上的属性还是对象上的属性
console.log('name' in person1);//trueconsole.log('class' in person1);//trueconsole.log('pp' in person1);//false
console.log('toString' in person1);//true
object.keys():这个函数返回的是当前对象可枚举的属性,并不包含原型连对象上的属性
person1.teacher='xjp';var keys1=Object.keys(Person.prototype);console.log(keys1);//name,age,sex,sayInfovar keys2=Object.keys(person1);console.info(keys2);//class,toString,teacher
Object.getOwnPropertyNames():返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性)组成的数组
var attrs=Object.getOwnPropertyNames(Person.prototype);console.log(attrs);//constructor,name,age,sex,sayInfoObject.getOwnPropertyDescriptor() 返回指定对象上一个自有属性对应的属性描述符。(自有属性指的是直接赋予该对象的属性,不需要从原型链上进行查找的属性)
var attrs1=Object.getOwnPropertyDescriptor(person1,'class');console.log(attrs1);//Object {value: "ddd", writable: true, enumerable: true, configurable: true}
0 0
- JS原型设计模式(三)
- 三、原型设计模式
- js原型设计模式
- 设计模式三:原型模式
- 设计模式(三)-原型模式
- JS原型设计模式(一)
- JS原型设计模式(二)
- Java设计模式(三)原型模式 适配器模式
- Java设计模式三(原型模式、适配器模式)
- js设计模式-原型模型
- 设计模式之(三)--原型模式(prototype)
- 设计模式之三 原型模式(Prototype)
- C++设计模式之原型模式(三)
- 面向对象的设计模式(三),原型模式
- javascript设计模式介绍(三) 原型模式 扩展知识
- JS设计模式(三)
- 四、设计模式之三-----原型模式
- JS设计模式之原型模式
- Ring Buffer (circular Buffer)环形缓冲区简介(C++版本)
- https协议验证原理
- Cloneable接口分析,学习了
- MySQL存储引擎分析及业务使用场景
- 关于SQL脚本优化
- JS原型设计模式(三)
- B题 素数(筛法求素数)
- Oracle的存储过程介绍
- WIN7下编译NIOS2出现如下错误提示:make:***[**.mk] Error 1 或者 make: *** [**.elf] Error 1
- 算法——霍夫曼编码压缩算法
- GAN人脸修复--Generative Face Completion
- ubuntu server 打开中文
- 从零到日志采集索引可视化、监控报警、rpc trace跟踪-分布式唯一ID生成
- java内连接和用pl/sql developer登录oracle时出现ORA-12154: TNS: 无法解析指定的连接标识符