js的原型继承小结
考虑:有一个想要复用的对象,并且想要创建的第二个对象需要从第一个对对象中获取其功能。
实现如下:
//要继承的对象
var parent = {
name:"Papa"
};
//新对象
var child = object(parent);
console.log(child.name);
object函数实现如下:
//原型继承
function object(o){
function F(){};
F.prototype = o;
return new F();
};
讨论:
可以使用构造函数创建父对象,这样做的话,“自身”属性和构造函数的原型属性都会被继承。
//父构造函数
function Person(){
this.name = "jie";
};
//添加到原型的属性
Person.prototype.getName = function(){
return this.name;
};
var papa = new Person();
var kid = object(papa);
//测试
console.log(kid.getName());
本模式的另一种变化,可以选择仅继承现有构造函数的原型对象。
//父构造器
function Person(){
this.name ="jie";
}
//添加到原型的属性
Person.prototype.getName = function() {
return this.name;
}
var kid = object(Person.prototype);
console.log(typeof kid.name); //结果"undefined"
console.log(typeof kid.getName); //结果"function"
js的原型继承小结的更多相关文章
- Node.js的原型继承函数util.inherits
		
util.inherits(constructor, superConstructor)是一个实现对象间原型继承 的函数.JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同.Jav ...
 - Node.js的原型继承函数 util.inherits
		
转自:http://sentsin.com/web/179.html util.inherits(constructor, superConstructor)是一个实现对象间原型继承 的函数.Java ...
 - Js通过原型继承创建子类
		
//定义一个有两个方法的类 function Person(){} Person.prototype.married = function(){}; Person.prototype.unmerrie ...
 - js的原型继承
		
<script> //动物(Animal),有头这个属性,eat方法 //名字这个属性 //猫有名字属性,继承Animal,抓老鼠方法 function Animal(name){ thi ...
 - js中原型继承的三种方式
 - js中原型继承的概念
 - js原型继承深入
		
js采用原型继承来实现类的派生,但是原型链再深入点,我们又知道多少呢,现在不妨往下看: 先来一个原型继承: var M1 = function() { this.param = "m1's ...
 - [js]js原型链继承小结
		
这是之前总结的, 发现有很多的毛病,就是重点不突出,重新翻看的时候还是得耗费很长时间去理解这玩意. js中的继承 js中什么是类 1,类是函数数据类型 2.每个类有一个自带prototype属性 pr ...
 - 老生常谈--Js继承小结
		
一直以来,对Js的继承有所认识,但是认识不全面,没什么深刻印象.于是,经常性的浪费很多时间重新看博文学习继承,今天工作不是特别忙,有幸看到了http://www.slideshare.net/stoy ...
 
随机推荐
- paip.输入法编程----一级汉字1000个
			
paip.输入法编程----一级汉字1000个.txt 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn. ...
 - Java菜鸟学习笔记--面向对象篇(十五):Wrapper Class包装类
			
什么是包装类? 在Java里一切都是对象,除了Java中的基本数据类型(byte,short,int,long,char,float,double,boolean)不是面向对象的,这在实际使用时存在很 ...
 - 五种实用DOM方法总结
			
DOM:Document Object Model 文档对象模型 对象的三种类型:用户定义类型.内建对象.宿主对象 节点类型:元素节点.文本节点.属性节点 getElementById()方法: 将返 ...
 - Gizmos绘制塔防游戏网格
			
1.画线脚本写法及地面调整 首先,新建脚本GridMap 新建绘制网格方法(初始数值为10*10) 在类中创建变量 //定义地图宽度 public int m_mapWidth = 10; //地图高 ...
 - UIViewController的生命周期及iOS程序执行顺序
			
UIViewController的生命周期及iOS程序执行顺序 当一个视图控制器被创建,并在屏幕上显示的时候. 代码的执行顺序1. alloc ...
 - 剖析C语言中a=a+++++a的无聊问题
			
同僚们闲聊,突然就聊到了a+++++a的问题.这种纯属C语言 “二” 级的问题应该是从a+++a引申出来的吧.于是乎兄弟姐妹们开始讨论它的运算结果,以及改如何理解.更有人写出(a++)+(++a) a ...
 - gridview列显示,截取其中前面的几个字显示出来,当鼠标放上去的时候显示全部——使用LinkButton的方法
			
使用LinkButton的方法<asp:LinkButton ToolTip ='<%#Eval("FilePath") %>' runat="serv ...
 - C# LinkButton 带参数的OnCommand事件的写法
			
前台: <asp:TemplateField HeaderText ="操作"> <HeaderStyle HorizontalAlign ="Cent ...
 - 在Bash中,如何判断某个命令是否存在?
			
if ! type "$foobar_command_name" > /dev/null; then # install foobar here,or poping up s ...
 - windows下将隐藏文件通过命令行改变为普通的显示文件
			
attrib -h -s *.* /s /d 不懂的看下 attrib /? 帮助.保存为bat也可以.