js学习(三)继承
来源:互联网 发布:网络红歌大全 编辑:程序博客网 时间:2024/05/25 05:37
写一些看到的继承的方法
3.1简单的继承
这个是参考了javascript高级程序设计一书上的继承方法,上一段代码如下
function SuperType(){ this.name ="person";}SuperType.prototype.getname = function(){ console.log(this.name);};function Subtype(){ this.name = "man";}Subtype.prototype = new SuperType();var instance1 = new Subtype();然后再上一个图
根据原型链的概念,SubType可以通过原型链去访问在SuperType中的方法getname,这就也差不多实现了继承的思想,最关键就是Subtype.prototype= new SuperType();这句话让Subtype.prototype为一个新建的SuperType对象,换个方式去理解,每次新建一个对象的时候,新的那个对象的__proto__属性都会指向构造这个对象的那个构造函数的原型,上述代码中,就是Subtype.prototype中的__proto__由原来指向objec.prototype变成了指向了SuperType.prototype,由此之后变可以通过原型链访问父类的属性。
还有一点需要注意的就是在这里name属性,在父类也有,在子类也有,子类会把父类的name给覆盖掉,对外呈现的就是在实例中的name,上述代码就是man。
3.2稍微复杂点的继承
先一个代码的部分function SuperType(name){this.name = name;this.colors = ["red","blue","green"];}SuperType.prototype.sayName = function(){console.log(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(){console.log(this.age);};var instance1 = new SubType("niki",29);instance1.hasOwnProperty("name");//trueinstance1.hasOwnProperty("colors");//trueinstance1.hasOwnProperty("age");//trueSubType.prototype.hasOwnProperty("name");//trueSubType.prototype.hasOwnProperty("sayAge");//trueSubType.prototype.hasOwnProperty("colors");//true然后也上一个图片
这个例子呢,其实继承的方式都是一样的,只不过在定义子类的方法中用到了call的方法,这里就是调用了SuperType的构造方法,还有一点需要注意的是SubType.prototype = new SuperType();会使得SubType.prototype的constructor属性指向父类的构造函数,如果需要让他指向SubType需要对他进行修改
//==貌似在博客上看到过其他的,下次看完了一起补上
0 0
- js学习(三)继承
- js继承封装(三)
- 关于JS中的继承(三)
- JS继承三
- 浅谈JS继承(三)
- JS学习(三)
- JavaScript 学习三 继承
- JS继承三种方式
- 学习 JS 继承
- js继承学习
- processing.js 学习(三)
- Vue.js 学习(三)
- JS学习进程(三)
- vue.js学习(三)
- JS学习笔记(三)
- JS学习笔记(三)
- java学习笔记<三>继承
- 《JS高级程序设计》第6章读书笔记:对象继承(三)原型式继承和寄生式继承
- mysql非主键自增长
- UML概述
- hdu-2167-Pebbles--炮兵布阵之类的 状态压缩dp
- 胡扯IoC(Inversion of Control)
- PHP遍历并打印指定目录下所有文件
- js学习(三)继承
- UVa 101 - The Blocks Problem解题报告
- robotium自动化测试学习总结
- Android学习系列 App工程结构搭建
- php解析url三个方法与实例
- poj——1789——Truck History
- 安卓手机驱动adb已识别 但是eclipse中devices无手机识别
- Clojure专题:字符串处理
- 继承的主要用法