文档章节

JavaScript继承方法

希留
 希留
发布于 2015/10/23 20:28
字数 198
阅读 2
收藏 0

//继承

//1.原型链

function superType(){

this.property = true;

}

superType.prototype.getSuperValue = function(){

return this.property;

}

function subType () {

this.subproperty = false;

}

subType.prototype = new superType();

subType.prototype.getSubValue = function(){

return this.subproperty;

}

var instance = new subType();

alert(instance.getSuperValue());

//2.借用构造函数

function superType(){

this.colors = ["red", "blue", "green"];

this.sayName = function(){

alert("Shiliew");

}

}

superType.prototype.test = function(){

alert("test");

}

function subType(){

superType.call(this);

}

var instance = new subType();

instance.sayName();

instance.test();//无法调用超类型的原型中的方法

//3.组合继承

function superType(name){

this.name = name;

}

superType.prototype.sayName = function(){

alert(this.name);

};

function subType(name, age){

superType.call(this, name);

this.age = age;

}

subType.prototype = new superType();

subType.prototype.constructor = subType;

subType.prototype.sayAge = function(){

alert(this.age);

};

//4.原型式继承

function object(o){

function F(){}

F.prototype = o;

return new F();

}

//5.寄生式继承

function createAnother(o){

var clone = Object.create(o);

clone.sayHi = function(){

alert("hi");

};

return clone;

}

//6.寄生组合式继承

function inheritProtype(subType, superType){

var prototype = Object(superType.prototype);

prototype.constructor = subType;

subType.prototype = prototype;

}

function SuperType(name){

this.name = name;

}

SuperType.prototype.sayName = function(){

alert(this.name);

};

function SubType(name, age){

SuperType.call(this, name);

this.age = age;

}

inheritProtype(SubType, SuperType);

SubType.prototype.sayAge = function(){

alert(this.age);

};


© 著作权归作者所有

希留
粉丝 0
博文 6
码字总数 1295
作品 0
武汉
程序员
私信 提问
JavaScript 中的继承:ES3、ES5 和 ES6

选择一种继承方式 JavaScript 是一门动态语言,动态意味着高灵活性,而这尤其可以体现在继承上面。JavaScript 中的继承有很多种实现方式,可以分成下面四类: Mixin 模式,即属性混入,从一个...

天方夜
2018/10/30
0
0
JavaScript instanceof 运算符深入剖析

随着 web 的发展,越来越多的产品功能都放在前端进行实现,增强用户体验。而前端开发的主要语言则是 JavaScript。学好 JavaScript 对开发前端应用已经越来越重要。在开发复杂产品中,需要使用...

IBMdW
2013/06/14
377
1
JavaScript继承(五)——寄生式继承

首先回顾一下原型式继承: 寄生式继承是与原型式继承紧密相关的一种思路,并且同样也是由克罗克福德推而广之的。 说到寄生式继承不得不说工厂模式和寄生构造函数模式创建对象。下面来回顾一下...

Bob2100
02/13
24
0
JavaScript继承(六)——寄生组合式继承

JavaScript继承(三)——组合继承中讲到,组合继承是JavaScript中最常用的继承模式,但是它也有自己的不足之处,现在我们就来剖析它的不足,如下示例: 使用组合继承让继承实际上分为两步:...

Bob2100
02/16
35
0
用通俗易懂的语言介绍JavaScript原型

原型(prototype)是每个JavaScript开发人员必须理解的基本概念,本文的目标是通俗而又详细地解释JavaScript的原型。如果你读完这篇博文以后还是不理解JavaScript的原型,请将你的问题写在下...

gsbhzh
2014/10/29
191
0

没有更多内容

加载失败,请刷新页面

加载更多

使用TensorFlow的AI程序运行报错AttributeError: module 'tensorflow' has no attribute 'xxx'

使用TensorFlow的AI程序,在运行时报错AttributeError: module 'tensorflow' has no attribute 'xxx',首先检查是否是包路径不对,一般是版本变化所致。...

织梦之魂
31分钟前
2
0
提示浏览器版本低

本文转载于:专业的前端网站➭提示浏览器版本低 网站网页在遇到浏览器低版本(尤其是IE浏览器)时,提示浏览器版本低(如IE8以及以下),建议用户升级浏览器以获得最好体验。以下是代码: 1...

前端老手
32分钟前
4
0
CentOS 7系统增加swap

转载请注明文章出处:CentOS 7系统增加swap swap是位于磁盘上的特殊文件(或分区),属于“虚拟内存”的一部分。通俗点就是内存的备胎,内存充足的情况下,基本上没swap什么事(和设置有关)...

tlanyan
55分钟前
6
0
基于Prometheus和Grafana的监控平台 - 环境搭建

相关概念 微服务中的监控分根据作用领域分为三大类,Logging,Tracing,Metrics。 Logging - 用于记录离散的事件。例如,应用程序的调试信息或错误信息。它是我们诊断问题的依据。比如我们说...

JAVA日知录
今天
6
0
PHP运行时全局构造体

struct _php_core_globals { zend_bool magic_quotes_gpc; // 是否对输入的GET/POST/Cookie数据使用自动字符串转义。 zend_bool magic_quotes_runtime; //是否对运行时从外部资源产生的数据使...

冻结not
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部