javascript 面向对象(六)原型的特性和作用
来源:互联网 发布:手机数据连接总是断开 编辑:程序博客网 时间:2024/05/16 11:20
1、根据实例对象获得原型对象 Object.getPrototypeOf()
function Person(){}Person.prototype.name = "梁";var p1 = new Person();//根据实例对象获得原型对象var prototyObj = Object.getPrototypeOf(p1);console.info(Person.prototype ==prototyObj);//true//每次代码读取对象的属性的时候,首先会搜索实例对象的属性,如果没有再去看原型对象的属性var p2 = new Person();console.info(p2.name);//梁p2.name = "昌";console.info(p2.name);//昌 想要获得原型对象的属性就这样: delete p2.name; p2.name
2、判断是原型属性还是实例属性 hasOWnProperty()
var p3 = new Person();console.info(p3.hasOwnProperty("name"));//falsep3.name = "z3";console.info(p3.hasOwnProperty("name"));//true
3、in 操作符判断属性是否在实例属性或者原型属性中 for in
var p3 = new Person();var p4 = new Person();console.info('name' in p3);//true
4、判断属性是否在原型对象中 object:要判断的对象,PropertyName属性
function hasPrototypeProperty(object,propertyName){return !object.hasOwnProperty(propertyName) && (propertyName in object)//!的优先级高于&&}
5、ECMA5中 constructor 是不能被枚举的
Object.getOwnPropertyNames(obj) 枚举对象的所有属性,包括不可枚举的
//ESMA5 中Object.keys(object);//拿到当前对象的所有keys,即属性和方法返回一个数组var p5 = new Person();p5.name = "哈哈";p5.age = 20;console.info(Object.keys(p5));//['name','age']console.info(Object.keys(Person.prototype));//['name']//consele.info(p5.prototype); 不能同过实例.prototype拿到原型对象,只能通过构造函数.prototype////ECMA5中 constructor 是不能被枚举的//Object.getOwnPropertyNames(obj) 枚举对象的所有属性,包括不可枚举的var attr = Object.getOwnPropertyNames(Person.prototype);//["constructor", "name"]console.info(attr);var attr2 = Object.getOwnPropertyNames(p5);//["constructor", "name"]console.info(attr2);//["name", "age"]
阅读全文
0 0
- javascript 面向对象(六)原型的特性和作用
- javascript面向对象(七)原型另外的作用--扩充对象的属性和方法
- Javascript面向对象之:原型(prototype)和基于原型的对象系统
- 面向对象的 Javascript 语言特性:作用域
- javascript--面向对象(三)原型对象存在的问题及组合组合使用原型和构造函数
- 有关javaScript面向对象和原型笔记
- JavaScript之----面向对象和原型
- Javascript面向对象(六)——方法原型
- JavaScript(面向对象+原型理解+继承+作用域链和闭包+this使用总结)
- Javascript 面向对象原型
- JavaScript面向对象-原型
- JavaScript面向对象(二)--前端必须知道的原型和继承
- javascript--面向对象(二)构造函数式的缺点和原型prototype
- JavaScript面向对象的程序设计2(组合构造和原型 继承)
- 基于原型的JavaScript面向对象编程
- 基于原型的JavaScript面向对象
- javascript: 基于原型的面向对象编程
- JavaScript面向对象-原型的内存模型
- Valgrind内存泄漏检查及定位利器
- Eclipse搭建HTML5开发环境
- 和数能表示1~23的5个正整数
- TensorFlow入门程序-线性回归
- Unity游戏UI框架(七):消息传递中心
- javascript 面向对象(六)原型的特性和作用
- Windows 系统下配置 pyrouge
- 接口测试入门
- 系统测试——基础知识
- 459. Repeated Substring Pattern
- windows 配置不同版本JDK
- nginx简单配置
- 《C++ primer》读书规划 I
- Java8 Lambda表达式 函数式编程(转)