Es5中的类和静态方法 继承
Es5中的类和静态方法 继承(原型链继承、对象冒充继承、原型链+对象冒充组合继承)
// es5里面的类 //1.最简单的类
// function Person(){
// this.name='张三';
// this.age=20;
// }
// var p=new Person();
// alert(p.name); //2、构造函数和原型链里面增加方法
// function Person(){
// this.name='张三'; /*属性*/
// this.age=20;
// this.run=function(){
// alert(this.name+'在运动');
// }
// }
// //原型链上面的属性会被多个实例共享 构造函数不会
// Person.prototype.sex="男";
// Person.prototype.work=function(){
// alert(this.name+'在工作');
// }
// var p=new Person();
// // alert(p.name);
// // p.run();
// p.work(); //3类里面的静态方法
// function Person(){
// this.name='张三'; /*属性*/
// this.age=20;
// this.run=function(){ /*实例方法*/
// alert(this.name+'在运动');
// }
// } // Person.getInfo=function(){
// alert('我是静态方法');
// }
// //原型链上面的属性会被多个实例共享 构造函数不会
// Person.prototype.sex="男";
// Person.prototype.work=function(){
// alert(this.name+'在工作');
// }
// var p=new Person();
// p.work();
// //调用静态方法
// Person.getInfo(); // 4、es5里面的继承 对象冒充实现继承
// function Person(){
// this.name='张三'; /*属性*/
// this.age=20;
// this.run=function(){ /*实例方法*/
// alert(this.name+'在运动');
// }
// }
// Person.prototype.sex="男";
// Person.prototype.work=function(){
// alert(this.name+'在工作');
// }
// //Web类 继承Person类 原型链+对象冒充的组合继承模式
// function Web(){
// Person.call(this); /*对象冒充实现继承*/
// }
// var w=new Web();
// // w.run(); //对象冒充可以继承构造函数里面的属性和方法
// w.work(); //对象冒充可以继承构造函数里面的属性和方法 但是没法继承原型链上面的属性和方法 // 5、es5里面的继承 原型链实现继承
// function Person(){
// this.name='张三'; /*属性*/
// this.age=20;
// this.run=function(){ /*实例方法*/
// alert(this.name+'在运动');
// }
// }
// Person.prototype.sex="男";
// Person.prototype.work=function(){
// alert(this.name+'在工作');
// }
// //Web类 继承Person类 原型链+对象冒充的组合继承模式
// function Web(){
// }
// Web.prototype=new Person(); //原型链实现继承
// var w=new Web();
// //原型链实现继承:可以继承构造函数里面的属性和方法 也可以继承原型链上面的属性和方法
// //w.run();
// w.work(); // 6、 原型链实现继承的 问题?
// function Person(name,age){
// this.name=name; /*属性*/
// this.age=age;
// this.run=function(){ /*实例方法*/
// alert(this.name+'在运动');
// }
// }
// Person.prototype.sex="男";
// Person.prototype.work=function(){
// alert(this.name+'在工作');
// }
// var p=new Person('李四',20);
// p.run(); // function Person(name,age){
// this.name=name; /*属性*/
// this.age=age;
// this.run=function(){ /*实例方法*/
// alert(this.name+'在运动');
// }
// }
// Person.prototype.sex="男";
// Person.prototype.work=function(){
// alert(this.name+'在工作');
// } // function Web(name,age){
// } // Web.prototype=new Person();
// var w=new Web('赵四',20); //实例化子类的时候没法给父类传参
// w.run();
// // var w1=new Web('王五',22); //7.原型链+对象冒充的组合继承模式
// function Person(name,age){
// this.name=name; /*属性*/
// this.age=age;
// this.run=function(){ /*实例方法*/
// alert(this.name+'在运动');
// }
// }
// Person.prototype.sex="男";
// Person.prototype.work=function(){
// alert(this.name+'在工作');
// } // function Web(name,age){
// Person.call(this,name,age); //对象冒充继承 实例化子类可以给父类传参
// }
// Web.prototype=new Person();
// var w=new Web('赵四',20); //实例化子类的时候没法给父类传参
// // w.run();
// w.work();
// // var w1=new Web('王五',22); //8、原型链+对象冒充继承的另一种方式
function Person(name, age) {
this.name = name; /*属性*/
this.age = age;
this.run = function () { /*实例方法*/
alert(this.name + '在运动');
}
}
Person.prototype.sex = "男";
Person.prototype.work = function () {
alert(this.name + '在工作');
}
function Web(name, age) {
Person.call(this, name, age); //对象冒充继承 可以继承构造函数里面的属性和方法、实例化子类可以给父类传参
}
Web.prototype = Person.prototype;
var w = new Web('赵四', 20); //实例化子类的时候没法给父类传参
w.run();
// w.work();
// var w1=new Web('王五',22);
Es5中的类和静态方法 继承的更多相关文章
- Typescript中的类 Es5中的类和静态方法和继承(原型链继承、对象冒充继承、原型链+对象冒充组合继承)
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...
- koa 基础(十七)原生 JS 中的类、静态方法、继承
1.app.js /** * 原生 JS 中的类.静态方法.继承 * es5中的类和静态方法 */ function Person(name, age) { // 构造函数里面的方法和属性 this. ...
- ES5中的类与继承
最近在重新复习TypeScript,看到类这块的时候自然会和ES5中的类写法进行对比加深印象. 发现ES5的类与继承一些细节还是挺多的,时间久了容易忘记,特此记录下. 首先是ES5的类定义,这没什么好 ...
- koa 基础(十八)es6中的类、静态方法、继承
1.app.js /** * es6中的类.静态方法.继承 */ // 定义Person类 class Person { constructor(name, age) { /*类的构造函数,实例化的时 ...
- Typescript 学习笔记四:回忆ES5 中的类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- 06 (OC)* iOS中UI类之间的继承关系
iOS中UI类之间的继承关系 此图可以更好的让你去理解iOS中一些底层的关系.你能够了解以及理解UI类之间的继承关系,你会更加明白苹果有关于底层的东西,更有助于你的项目开发由它们的底层关系,就能更加容 ...
- ES5中的类
之前小编对于类和类的基本特征(所谓的封装.继承.多态)理解一直不是很到位,同时在实际项目应用中也用的比较少,今天小编就结合ES5中的基本用法和大家聊聊,希望小伙伴会在这篇文章有属于自己的收获,并能够在 ...
- es6中class类的静态方法、实例方法、实例属性、(静态属性)
关于类有两个概念,1,类自身,:2,类的实例对象 总的来说:静态的是指向类自身,而不是指向实例对象,主要是归属不同,这是静态属性的核心. 难点1:静态方法的理解 class Foo { static ...
- 在ES5中模拟类
1.Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__. var _this = Object.create(fn.prototype);这句代码的 ...
随机推荐
- appium+robotframework常见技巧总结
1.如何输入中文 方法: 在open application参数最后,新增unicodeKeyboard=True resetKeyboard=True:不加入这两个参数时,中文无法输入 2.如 ...
- LeetCode算法题-Find the Difference(Java实现-五种解法)
这是悦乐书的第214次更新,第227篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第82题(顺位题号是389).给定两个字符串s和t,它们只包含小写字母.字符串t由随机混 ...
- LeetCode算法题-Intersection of Two Arrays II(Java实现)
这是悦乐书的第208次更新,第220篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第76题(顺位题号是350).给定两个数组,编写一个函数来计算它们的交集.例如: 输入: ...
- LeetCode算法题-Intersection of Two Arrays(Java实现-四种解法)
这是悦乐书的第207次更新,第219篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第75题(顺位题号是349).给定两个数组,编写一个函数来计算它们的交集.例如: 输入: ...
- 【2018.08.13 C与C++基础】C++语言的设计与演化读书笔记
先占坑 老实说看这本书的时候,有很多地方都很迷糊,但却说不清楚问题到底在哪里,只能和Effective C++联系起来,更深层次的东西就想不到了. 链接: https://blog.csdn.net/ ...
- Vmware12安装centos系统详解
vmware12安装centos7系统详解 用虚拟机12安装centos7系统详细安装过程,后附centos7下载地址. 工具/原料 虚拟机12 centos7系统镜像 方法/步骤 1 1.百度搜索c ...
- ABAP on HANA之CDS Association和Path Expression
本文阐述了ABAP CDS association的概念,并且展示了在CDS视图中和SQL语句中写路径表达式(Path Expression)代码的方法.我也会解释如何在CDS asociation中 ...
- 《Java大学教程》—第21章 高级案例研究
21.3 需求:P510用例模型(use case model):用例图(use case diagram).用例(use case).行为说明(behaviour specification) ...
- 提升SQLite数据插入效率低、速度慢的方法
前言 SQLite数据库由于其简单.灵活.轻量.开源,已经被越来越多的被应用到中小型应用中.甚至有人说,SQLite完全可以用来取代c语言中的文件读写操作.因此我最近编写有关遥感数据处理的程序的时候, ...
- java实现谷歌二步验证 (Google Authenticator)
准备: 一个谷歌二步验证APP, 我用的是ios 身份宝 资料: 1.Google Authenticator 原理及Java实现 //主要参考 https://blog.csdn.net/li ...