js中的原型链
来源:互联网 发布:互联网过滤软件 编辑:程序博客网 时间:2024/04/30 22:45
1、声明方法:
<script type="text/javascript"> function Person(p_name){ this.name=p_name } //声明对象 var p1=new Person('zhangsan'); //为person类的对象 添加一个属性 Person.prototype.age=13; //为对象添加一个speak方法 Person.prototype.speak=function(){ consoloe.log(this.name+'————'+this.name); } var p2=new Person('lisi'); var p3=new Person('xiaoqiang');</script>
其原理如下:
2、原型继承
所有类的父类都是object类
原型是一个对象,它是object类下的一个实例,
3、原型链:
什么叫原型链:
构造函数继承一个对象。
继承对象也有构造函数,其构造函数还去继承其他对象。
其他对象也有构造函数,构造函数还去继承其他对象。
其他对象也有构造函数,构造函数还去继承其他对象。
如此反复……..
形成了一个继承的链条,称为“原型链”,原型链的顶端是object。
4、对象访问一个成员顺序:
对象【本身】获取
对象【构造函数】里边获取
构造函数【继承对象】本身获取
构造函数【继承对象的构造函数】里边获取
构造函数继承对象构造函数继承对象的本身获取。。
构造函数继承对象构造函数继承对象的构造函数边里获取。。
5、原型衍生继承—复制继承
该继承在jquery框架有大量应用,该继承特点/好处:继承非常灵活,可以根据实际情况需要为对象去继承成员,如果有的对象不要额外成员,就不继承即可,同时,该继承允许同时继承多个对象。
<script type="text/javascript"> var dog={hobby:'看家护林',run:'在跑步'}; function Cat(){ this.mingzi='bosimao'; this.color='white'; this.leg=4; } Cat.prototype=dog; var kitty=new Cat(); for(var k in kitty){ if (kitty.hasOwnProperty(k)) { console.log('自己的:'+k+"————————"+kitty[k]); }else{ console.log('继承的:'+k+"————————"+kitty[k]); } } //原型衍生继承————复制继承 var cat1={color:'white',weapon:'伶牙俐齿',climb:function(){console.log('在跑步')}}; var seven={eye:'闪闪发光',tail:'笔直的尾巴'}; function Dog(){ this.color='gray'; this.leg=4; } //为dog原型添加自定义的方法 Dog.prototype.exx=function(obj){ for (var k in obj){ this[k]=obj[k]; } } //为自己添加自己属于自己的原来的属性 并且会覆盖掉 Dog.prototype.exx1=function(obj){ for (var k in obj){ if (this.hasOwnProperty(k)) { this[k]=obj[k]; } } } //为自己添加不属于自己的属性 Dog.prototype.exx2=function(obj){ for (var k in obj){ if (!this.hasOwnProperty(k)) { this[k]=obj[k]; } } } var black=new Dog(); //使得black对象继承cat对象 black.exx(cat1); console.log(black); var yellow=new Dog(); yellow.exx1(cat1); console.log(yellow); var red=new Dog(); red.exx2(cat1); console.log(red);</script>
阅读全文
0 0
- JS中的原型链
- js中的原型链
- js中的原型链
- js中的原型链
- js中的原型链
- js中的原型链
- Js中的原型继承和原型链
- js中的原型及原型链
- js中的对象/this/原型/原型链
- JS中的prototype 原型链
- 理解js中的原型链
- 浅谈JS中的原型链
- 理解js中的原型链
- 理解js中的原型链
- JS原型、原型链
- JS-原型、原型链
- JS原型,原型链
- js原型,原型链
- UISearchController 教程-开始
- 产品经理教你写代码—用JAVA写一个阿里云VPC Open API调用程序
- 线程并发三:线程组和守护线程
- java == 和equals
- Trafodion 开发环境搭建
- js中的原型链
- LR录制手机app脚本
- lintcode&九章算法——Google面试题 | 有效括号字符串 ? 待解决
- ios 图片拉伸方法
- php流程控制以及swich、case、default、break,continue的用法
- PHP——登录时用户名密码区分大小写设置(binary)
- React学习笔记_shoping_cart
- 制造linux安装系统老毛桃u盘
- Python与机器学习之数据可视化(三)