javascript prototype 学习笔记
2017-11-25 18:18
155 查看
javascript与其他面向对象语言有很大的不同,我有时总感觉如果没学过c++,.net而直接开始学javascript反而会更好一些,反之看到javascript的某些特性,你一定会惊呼:居然还有这种操作!
首先推荐一篇不错的文章https://javascriptweblog.wordpress.com/2010/06/07/understanding-javascript-prototypes/
这篇文章有中文翻译,而且翻译水平相当不错http://www.oschina.net/translate/understanding-javascript-prototypes
高手写文章总是点到为止,对于我们这些初学者就需要多琢磨才能真正理解其中的精妙
下面我就来亲自剖析一下其中的一个例子,以下操作直接在google chrome的console里完成。
原文中有一个例子,声明了一个计算圆的面积的类Circle。
这个对象只是声明了一个属性radius,而并没有怎么计算面积的函数。
然后先让我们创建一个此函数的实例,取名为a.
![](http://img.blog.csdn.net/20171125180238489)
再看看a从Circle中继承了什么
![](http://img.blog.csdn.net/20171125180213095)
这时候我们在所谓的基类Circle中增加一个计算面积的方法area
![](http://img.blog.csdn.net/20171125180238489)
a的内容没有变化,再看看a从Circle中继承了什么
![](http://img.blog.csdn.net/20171125181102115)
奇迹发生了,a中多了一个方法area,尽管这个方法是在a被声明之后才加入到其基类Circle中的,所以在调用a.area()时毫无意外的得到了半径为3的园的面积
![](http://img.blog.csdn.net/20171125181338800)
哎,即使对于我这种偶尔用用C++的人来说,也只能感慨:居然还有这种操作。
本文系本人原创,如要转载请注明出处。
首先推荐一篇不错的文章https://javascriptweblog.wordpress.com/2010/06/07/understanding-javascript-prototypes/
这篇文章有中文翻译,而且翻译水平相当不错http://www.oschina.net/translate/understanding-javascript-prototypes
高手写文章总是点到为止,对于我们这些初学者就需要多琢磨才能真正理解其中的精妙
下面我就来亲自剖析一下其中的一个例子,以下操作直接在google chrome的console里完成。
原文中有一个例子,声明了一个计算圆的面积的类Circle。
var Circle = function(radius){ this.radius = radius; }
这个对象只是声明了一个属性radius,而并没有怎么计算面积的函数。
然后先让我们创建一个此函数的实例,取名为a.
var a = new Circle(3);这时候我们看看直接在console里检查一下a的内容:
再看看a从Circle中继承了什么
这时候我们在所谓的基类Circle中增加一个计算面积的方法area
Circle.protype.area = function(){ return Math.PI*this.radius*this.radius; }请注意,这个方法area是在声明了实例a之后添加的,然后这时候我们再来检查一下a的内容
a的内容没有变化,再看看a从Circle中继承了什么
奇迹发生了,a中多了一个方法area,尽管这个方法是在a被声明之后才加入到其基类Circle中的,所以在调用a.area()时毫无意外的得到了半径为3的园的面积
哎,即使对于我这种偶尔用用C++的人来说,也只能感慨:居然还有这种操作。
本文系本人原创,如要转载请注明出处。
相关文章推荐
- Javascript学习笔记九——prototype封装继承
- JavaScript 学习笔记十四 this特性,静态方法 和实例方法,prototype
- JavaScript学习笔记(4)---prototype
- [前端JS学习笔记]JavaScript prototype 对象
- JavaScript 学习笔记十四 this特性,静态方法 和实例方法,prototype
- javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
- JavaScript 学习笔记十四 this特性,静态方法 和实例方法,prototype
- Javascript学习笔记6 prototype的提出
- JavaScript中prototype、constructor、hasOwnProperty()、isPrototypeOf()学习笔记
- Java程序猿的JavaScript学习笔记(5——prototype和Object内置方法)
- Javascript学习笔记--理解prototype
- JavaScript学习笔记六:prototype的提出
- JavaScript中的prototype(学习笔记)
- javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
- Java程序员的JavaScript学习笔记(5——prototype和Object内置方法)
- JavaScript 学习笔记 三 原型(prototype)
- [前端JS学习笔记]JavaScript prototype 对象
- [原]Java程序员的JavaScript学习笔记(5——prototype和Object内置方法)
- Javascript学习笔记--理解prototype
- Javascript学习笔记--理解prototype