JS面向对象组件(四) -- 面向对象的继承
//父类 createPerson
function createPerson(name,sex){
this.name = name;
this.sex = sex;
}
createPerson.prototype.showName = function(){
alert(this.name);
}
var a = new createPerson("小明","男"); //子类 createStar
function createStar(name,sex,job){
//createPerson(name,sex); //最初的想法肯定是直接调用父类的构造函数,但是结果不行。因为调用这个构造函数前面没任何东西,this代表window、
createPerson.call(this,name,sex); //所以要通过call改变this的指向。 指向为这儿b。
this.job = job;
}
createStar.prototype = createPerson.prototype; //这个就存在对象引用的问题,但凡改变两个对象中的任意一个,另一个也会变。
createStar.prototype.showJob = function(){
alert(this.job);
}
var b = new createStar("黄晓明","男","演员");
b.showName(); console.log(a); //会多出一个showJob
console.log(b);
所以上面特意添加了个子类的方法showJob,来测试 createStar.prototype = createPerson.prototype 这个的问题。
JS面向对象组件(四) -- 面向对象的继承的更多相关文章
- JS面向对象组件(三)--面向对象中的常用属性和方法
图片的由来看下面: 1.hasOwnProperty:看是不是对象自身下面的属性 var arr = []; arr.num = ; Array.prototype.num2 = ; //所有的数组对 ...
- js常见知识点3.面向对象之继承、设计模式
一.面向对象的三大特征 建议回复: 封装:屏蔽内部细节.调用外部接口实现对应功能(函数调用) 继承:子类继承父类中的属性和方法 多态(js中不存在多态的概念) 二.继承 建议回复: 继承:子类继承父类 ...
- 关于JS面向对象、设计模式、以及继承的问题总结
1.对象:JS中万物皆对象,它是一个泛指 类:对象的具体的细分 (物以类聚,人与群分.具有相同属性和方法的实例的一个集合总称) 实例:某一个类别中具体的一个事物 对象是一个抽象的概念,类似于我们的自然 ...
- JS - ES5与ES6面向对象编程
1.面向对象 1.1 两大编程思想 1.2 面向过程编程 POP(Process-oriented programming) 1.3 面向对象编程 OOP (Object Oriented Progr ...
- 面向对象编程(九)——面向对象三大特性之继承以及重写、Object类的介绍
面向对象三大特性 面向对象三大特征:继承 :封装/隐藏 :多态(为了适应需求的多种变化,使代码变得更加通用!) 封装:主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现. 继承:很好的实现 ...
- Python 基础 四 面向对象杂谈
Python 基础 四 面向对象杂谈 一.isinstance(obj,cls) 与issubcalss(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls ...
- (二)Javascript面向对象编程:构造函数的继承
Javascript面向对象编程:构造函数的继承 这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例. 今天要介绍的是,对象之间的"继承 ...
- python基础学习Day17 面向对象的三大特性之继承、类与对象名称空间小试
一.课前回顾 类:具有相同属性和方法的一类事物 实例化:类名() 过程: 开辟了一块内存空间 执行init方法 封装属性 自动的把self返回给实例化对象的地方 对象:实例 一个实实在在存在的实体 组 ...
- Java学习笔记二十一:Java面向对象的三大特性之继承
Java面向对象的三大特性之继承 一:继承的概念: 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方 ...
- 【转载】【游戏开发】在Lua中实现面向对象特性——模拟类、继承、多态
[游戏开发]在Lua中实现面向对象特性——模拟类.继承.多态 阅读目录 一.简介 二.前提知识 三.Lua中实现类.继承.多态 四.总结 回到顶部 一.简介 Lua是一门非常强大.非常灵活的脚本语 ...
随机推荐
- eclipse创建python项目
http://jingyan.baidu.com/article/19192ad8173300e53f570757.html
- JavaScript中函数的形参和实参的实现原理剖析
我们都知道JS里面参数的传递是可以不一样的,比如我们有一个函数: <script type="text/javascript"> function one(a,b,c) ...
- mq_unlink
NAME mq_unlink - 销毁一个消息队列 (REALTIME) SYNOPSIS #include <mqueue.h> int mq_unlink(const char *na ...
- linux c截断文件
http://www.cnblogs.com/zhuxiongfeng/archive/2010/08/24/1807505.html
- 20个最受欢迎的Linux命令
http://code.csdn.net/news/2819566 1. 以 root 帐户执行上一条命令 sudo !! 2. 利用 Python 搭建一个简单的 Web 服务器,可通过 ht ...
- Qt源代码分析
记下好文章,慢慢看,然后加上自己心得: http://www.cnblogs.com/hicjiajia/archive/2011/08/27/2155512.html Qt源码分析之信号和槽机制ht ...
- 将IDEA快捷键改为Eclipse模式
windows下选择File-->Settings,搜索Keymaps,右栏选择Eclipse
- Intellij编译时报“java: System Java Compiler was not found in classpath” 解决办法
Intellij编译时报“java: System Java Compiler was not found in classpath” 解决方法: Project Settings > Comp ...
- [iOS]如何删除工程里面用cocoapods导入的第三方库
如何在工程中卸载用cocoapods导入的第三方呢? 1. 打开工程所在文件夹 2. 打开Podfile文件 3. 删除不要的第三方导入命令 4. 然后在回到终端,然后进入到工程目录下,然后更新第三方 ...
- vim快捷键笔记【原创】
Vim zR 全部展开 zM全部合并 vim 快捷键 shift + i (‘I’) 进行编辑 shift + 4 (‘$’) 跳到行尾 shift ...