三种基本的继承类型
来源:互联网 发布:还珠格格原著知画结局 编辑:程序博客网 时间:2024/06/03 18:02
- 伪类
通过构造函数产生对象
'use strict';let Animal = function(name,age){ this.name = name; this.age = age; //以下定义方式不可访问 /* let sysName = function(){ console.log(this.name) } */ this.sysName = function(){ console.log(this.name) }}let cat = new Animal('cat',10);Animal.prototype.sysAge = function(){ console.log(this.age);}//cat.__proto__ === Animal.prototypecat.__proto__.sysAll = function(){ console.log('name :'+ this.name+' age :'+ this.age);}cat.sysName();cat.sysAge();cat.sysAll();let dog = new Animal('dog',5);//加入到Animal.prototype的方法 dog都有dog.sysName();dog.sysAge();dog.sysAll();执行结果:cat10name :cat age :10dog5name :dog age :5
原理:Function.method('new', function(){ //创建一个新对象 var that = object.create(this.prototype); //调用构造器函数 var other = this.apply(that,arguments); //如果other不是一个对象,返回that return (typeof other === 'object' && other)||that; //&&运算符如果左边为真,取右边值,否则,相反 //||运算符如果左边为正,取左边值,否则,相反})
原型
let Animal = { name :'animal', age : 0, sysName:function(){ console.log(this.name) }}let cat = Object.create(Animal);cat.name = 'cat';cat.sysName();执行结果:cat
函数化
为建立对象增加私有变量和方法,利用变量。
'use strict';let Animal = function(){ let name = 'animal'; let age = '5'; let that = { getName : function(){ return name; }, setName : function(str){ name = str; return this; } } return that;}var cat = Animal().setName('cat');//只能通过getName()来访问nameconsole.log(cat.getName());
三种方法本质上都是基于原型的继承
阅读全文
0 0
- 三种基本的继承类型
- 通信的三种基本类型
- Hibernate支持三种基本的继承映射策略:
- C++的三种继承
- Web前端工程师的林林总总(一) -- 三种Web前端工程师的基本类型
- JavaScript中String、Number以及Boolean三种基本类型的特殊用法
- java入门教程(三)基本类型
- 继承类的类型
- 泛类型的继承
- 继承的基本演示
- 继承的基本实现
- 继承的基本用法
- 继承的基本使用
- 公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。
- 三种继承的方法:public 继承/private继承/protected继承详解及区别
- 共有继承 私有继承 保护继承 派生类的三种继承方式小结
- 公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。
- 三种继承的方法:public 继承/private继承/protected继承详解及区别
- 用shell脚本监控kvm虚拟机
- Android开发中线程池的使用总结
- 在ubuntu中安装单机Hadoop(一)
- PCL arm linux 源码安装
- ns2从入门到放弃(一)
- 三种基本的继承类型
- Android之路 2.Toast,Intent
- 使用pypy初步
- 当我说要做大数据工程师时他们都笑我,直到三个月后……
- CentOS6.7安装MySQL5.7详细教程
- BF算法(作业五)
- js排序算法
- Android之路 3.活动的生命周期
- scikit-learn 逻辑回归类库使用小结