admin管理员组

文章数量:1602432

javascript关于继承解析

上一篇已介绍了组合继承,现在讲讲剩余的几种继承。

原型式继承

调用一个函数,接收这个函数返回来的对象,这个对象的原型就是传入函数的参数对象。

如:

function personObject(o){

function F(){}

F.prototype = o;

return new F();

}

var person = {

name:"Nicholas",

friends:["Shelby","Court","Van"]

}

var person_one = personObject(person);

从上面的代码中,我们知道person是person_one的原型。ES5中添加了一个方法规范化原型式继承,这个方法是Object.create(),这个方法有两个参数,第一个是作为新对象原型的对象,像上面的person,第二个是为新对象定义额外属性的对象。第二个参数可选。

如:

var person_one = Object.create(person, {

name: {

value:"Jon"

}

});

当你只想让一个对象与另一个对象保持类似时,可以使用原型式继承。

寄生式继承

在一个函数里实现一次原型式继承,然后为接收到的这个对象添加自己的属性与方法。

如:

function createAnother(o){

var person_one = personObject(o);

person_one.sayHi = function(){

alert(" hi ");

}

return person_one;

}

寄生组合式继承

组合继承也有其缺点,它实现了两次属性继承,而寄生组合式继承就避免了这个问题。实例通过构造函数继承了属性,而原型的方法则是通过寄生式继承的方式来继承。

如:

function inherit(subType, superType){

var prototype = Object(superType.prototype);

prototype.constructor = subType;

subType.prototype = prototype;

}

通过调用上面的函数,实现subTye.prototype的原型是superType.prototype,完成了原型方法的继承。

以上这篇javascript关于继承解析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持phpstudy。相关阅读:

php+html5基于websocket实现聊天室的方法

JavaScript中文件上传API详解

通过jquery-ui中的sortable来实现拖拽排序的简单实例

微软重新发布6个重要补丁 只为鼓励Win7用户升级Win10

thinkpadE431升级win8.1后的开机杜比弹窗该怎么解决

Linux系统下查看和修改IP的方法

C#数据库操作的用法

雨林木风Windows7查看其它用户组电脑的共享文件

ASP.NET MVC实现图片上传、图片预览显示

jquery中获取元素里某一特定子元素的代码

js正则表达式讲解之index属性(RegExp对象)

Ajax——异步检查用户名是否存在示例

HTML常用标签大全及html标签的特点

Android中通过AsyncTask类来制作炫酷进度条的实例教程

本文标签: 组合上一篇JavaScriptjavascriptPHPphpstudy