原型
2015-09-24 11:20
197 查看
原型构造对象
原型构造对象的方式是从一个具体到具体的过程,即是会利用一个现有的对象为原型去构建另一个对象。原型对象—->对象
JS里面有两种从原型对象中构建对象的方法第一种:Object.create(proto[,propertiesObject]) ----proto一个对象,作为新创建对象的原型。这个函数会返回构建的对象 ------propertiesObject对象的属性定义 Object.create实例: //定义原型对象 var landRover = { name:'landRover', start: function(){ console.log('%s start',this.logo); }, run: function(){ console.log('%s running', this.logo); }, stop: function(){ console.log('%s stop', this.logo); } } //使用原型创建新的对象 var landWind = Object.creat(landRover); landWind.logo = 'landWind'; var landCruiser = Object.create(landRover); landCruiser.logo = 'landCruiser';
第二种方法:构造函数 /*function landRover(logo){ start: function(){ console.log('%s start',this.logo); }, run: function(){ console.log('%s running',this.logo); }, stop: function(){ console.log('%s stop', this.logo); } } var landWind = new landRover();*/ //设置对象的原型---实例 function Car(logo){ this.logo = logo || 'unknown name'; } Car.prototype = { start: function() { console.log('%s start', this.logo); }, stop: function(){ console.log('%s stop', this.logo); }, run: function(){ console.log('%s running', this.logo); } } var landRover = new Car('landRover');//执行这句时,其实是有三个步骤 var landWind = new Car('landWind'); //调用方法 landRover.start();
上面的图表面了调用构造函数新建对象时的执行步骤,第三步是函数调用方法中的apply()调用,把对象传给了构造函数的this。
原型链–实例
JS中对象的属性和方法的访问删除和原型链有关
访问属性时,先从本身查询,依次向上。修改和删除属性只能操作自身的属性
hasOwnProperty()
这个方法每个对象都有,来自于Object原型判断一个属性是否属于对象自身
landRover.hasOwnProperty('serialno');//true //这是在判断属性serialno是否是landRover对象自身的,是为true,否定为false;
相关文章推荐
- 喷水装置 ACM题目 京东16招聘编程题(贪心算法)
- 前端性能提升方法
- URAL 1005 Stone Pile (DFS)
- Introduction to Java Programming编程题8.36<Latin square>
- Java规则引擎详解
- LightOJ 1094 - Farthest Nodes in a Tree【树的直径】
- 可变参数
- eclipse使用技巧
- Python判断字符串是否符合某一正则表达式
- Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解
- 模态框
- MySql创建临时表和特殊关联语句
- android sdk manager无法更新
- Warning: $HADOOP_HOME is deprecated. hadoop1.0.4解决方法
- android中 finish()、onDestory()、exit
- 结对编程分组
- PHP学习笔记(三):运算符
- PHP编程 - 抽离CodeIgniter的数据库访问类
- Java学习--论对象置空的重要性
- java中的基本数据类型存放位置