浅谈js继承之原型链继承
来源:互联网 发布:淘宝库客运动是真是假 编辑:程序博客网 时间:2024/06/05 05:42
继承之原型链
本文是简单来谈一下自己对原型链的理解,并且写个例子来巩固一下。
概念
继承是OO语言中一个重要的特性和概念。许多的OO语言中都支持两种继承方式:接口继承和实现继承。
ECMAScript只支持实现继承,其实现继承主要是靠原型链来实现。
那么首先就先来讲讲原型链。
原型链的基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。
简单回顾下构造函数、原型和实例的关系:
每个构造函数或则函数都要一个prototype(显式原型),一般方法都会写在显式原型上,比如Object的toString()方法就是写在Object.prototype上的,所以每一个实例化对象都可以根据原型链的原理,调用到该方法。而实例化的对象都有一个(_proto_)属性,指向其构造函数的显式原型,这样也就构成了原型链了。
原型链继承例子
function Elem(id){ this.elem = document.getElementById(id);};Elem.prototype.html = function(val){ var elem = this.elem; if(val) { elem.innerHtml = val; return this;//jQuery链式写法的原理 } else { return elem.innerHtml; }};function SubElem(id){ this.subElem = document.getElementById(id);};SubElem.prototype = new Elem(id);//之后实例化SubElem,随之可调用父类的方法。
缺点是:当在父类显式原型上加上属性,修改属性后,所有实例化对象的该属性都会受到影响。所以一般情况下是不用的,不过可以了解一下原型链的机制原理以及this的原理。
这里附带说一下this的原理:
- 创建一个新对象为空
- this 指向这个对象
- 执行代码,即为this赋值
- 最后返回this (不过一般不写return this, 因为会自动加上,但是自己写的话需要保证写对,否则就会返回一个不是自己想要的对象)
阅读全文
0 0
- 浅谈js继承之原型链继承
- 浅谈js函数继承模式之三:共享原型模式
- JS:原型、原型链、继承
- 【JS】原型链继承
- js原型链继承
- js之原型链与继承
- js之原型链与继承
- js对象继承之原型链继承实例
- js面向对象之继承-原型继承
- js原型链与继承
- JS继承及原型链
- js原型链及继承
- JS继承与原型链
- JS继承inheritance-原型链
- Js原型链与继承
- Js中的原型继承和原型链
- 面对对象继承之原型链继承
- JS继承--原型链继承和类式继承
- 面试必看:java面试考点精讲视频教程
- Activity启动模式
- 第十一章:持有对象
- [LeetCode] Add and Search Word
- 【剑指Offer】面试题47:不用加减乘除做加法
- 浅谈js继承之原型链继承
- Java语言高编——面向对象-接口
- C/C++ 工程基础知识
- android 页面的自动跳转 (android 项目心得一)
- 使用Git版本控制 .gitignore 忽略不需要提交的文件
- 通过maven中央仓库进行jar包下载
- jQuery源码分析-----jQuery.fn.init.prototype=jQuery.fn=jQuery.prototype
- ffplay播放文件
- 100 Same Tree