博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js继承
阅读量:6795 次
发布时间:2019-06-26

本文共 1256 字,大约阅读时间需要 4 分钟。

1.传统形式-->原型链

  • 过多的继承了多用的属性

2.借用构造函数

function Person(name,age,sex){    this.name=name;    this.age=age;    this.sex=sex;}function Student(name,age,sex,grade){    Person.call(this,name,age,sex);    this.grade=grade;}var student=new Student();复制代码
  • 不能继承借用构造函数原型
  • 每次构造函数都要多走一个函数

3.共享原型

Father.prototype.lastName="du";function Father(){    }function Son(){    }function inherit(Target,Origin){    Target.prototype=Origin.prototype;//Son和Father的原型会指向同一个,会相互影响}inherit(Son,Father);var son=new Son;//顺序不能变动复制代码
  • 不能随便改动自己的模型,原型指向一样,会互相影响。

4.圣杯模式

function inherit(Target,Origin){    function F(){};//利用F作为一个中间层Son既可以改变自己的原型,又不会影响Father的原型    F.prototype=Origin.prototype;    Target.prototype=new F();    Target.prototype.constructor=Target;//将Target的构造函数指向自己,否则会指向Origin    Target.prototype.uber=Origin.prototype;//uber类似于一个super,快速的帮你找到直接的原型}Father.prototype.lastName="du";function Father(){    }function Son(){    }inherit(Son,Father);var son=new Son();var father=new Father();//类似功能另外一种写法var inherit=(function(){    var F=function(){};//变成了私有化变量    return function(Target,Origin){        F.prototype=Origin.prototype;        Target.prototype=new F();        Target.prototype.constructor=Target;        Target.prototype.uber=Origin.prototype;        }}());//形成了一个闭包复制代码

转载地址:http://tvggo.baihongyu.com/

你可能感兴趣的文章
警惕可执行文件:三类危险TXT类型文件
查看>>
网络安全没保障 40%多英国人不敢网上购物
查看>>
Simple example of using the Java Native Interface
查看>>
转:JXCollapsiblePane/JXTaskPane via NetBeans 6.9.1 designer
查看>>
职业生涯之规划1--基础知识
查看>>
VBS基础篇 - 对象(8) - Err对象
查看>>
转帖:深入理解JavaScript系列
查看>>
在Windows环境中使用版本管理工具Git(2)
查看>>
Android开发五 Android应用程序架构
查看>>
【发布】弹性分页类PagingBuild Class 附带测试
查看>>
<poj 1046>Color Me Less
查看>>
第k短路和A*
查看>>
Linux at命令定时发送邮件具体用法
查看>>
hudson无法访问问题,linux防火墙问题
查看>>
arcEngine 10 C++ 坐标转换【坐标系的投影】
查看>>
Java6 WebService学习
查看>>
命名规则 : 匈牙利法则
查看>>
适用于单选的jQuery Auto-complete插件SelectToAutocomplete
查看>>
chrome下可用的Windows Media Player插件
查看>>
ubuntu 10.04 install oracle11g
查看>>