标签:
这几天在家门头看书,感觉没什么动力也没什么劲。
继承:
接上一篇:
以前学c#的时候,天天说面向对象三大特征是 封装 继承 多态,天天说这个词。继承.......这个词听起来好没劲。
我想让学js变得有趣一些 ,变得让自己有动力一些。
以我现在的水平 我粗略的简单的说一下继承,额 还是瞎说一下吧。以前学c#的时候说,c#是一门面向对象的语言,要深刻的理解面向对象。我理解的编程语言所谓的面向对象大致是这样
就是在编程语言的世界里模仿现实世界。在现实世界中万物都是对象,一个台灯,一个营养快线,一个鼠标,一个指甲刀,一个电风扇,一个女朋友,都是对象,在编程语言中也是,一个变量,一个类,一个子类,一个命名空间,一个方法,这也都是对象。其实我只是意识形态是这么理解的,具体到代码形态的话 呵呵......
好吧js中的继承。
我按照书上的写其实我也是在理解书上的,但是光看书不好理解所以我就写下来自行理解边理解边写。
实现继承的方法
1.可以通过原型链,额原型对象就够不好理解了又来了个原型链,如果用原型来实现继承,儿子要继承爸爸 爸爸要继承爷爷 这三个要实现继承可不就链了吗?
先提一个问题吧:说鸣人是一个构造函数(额一个类型) 木叶丸也是一个构造函数(额一个类型) 鸣人代表鸣人那一带人,木叶丸代表木叶丸那一带人好了,这样更说的过去一点;
说要实现木叶丸继承鸣人 这怎么实现
他们都是构造函数 都有自己的六道仙人(原型对象)并且也都有一些自己的属性和方法。
那么木叶丸要怎么继承鸣人呢?快快告诉我?其实我在问我自己 我这个2b哈哈
接下来就是原型链要上场了
说声明了一个鸣人 一个木叶丸 他们都各自有自己的六道仙人 现在网鸣人的六道仙人里加一个忍术叫火遁 豪火灭却,那么鸣人的影分身就都会这个火遁的忍术了(好厉害)
这就是所谓原型对象的用途
现在木叶丸要继承鸣人这个类型,(可不可以说这个构造函数?)书上的方法是这样的 他让木叶丸的六道仙人=了一个鸣人的影分身,注意是鸣人的一个影分身。之前我们提到过
鸣人的影分身不仅有鸣人的属性的方法而且还有鸣人的六道仙人的属性和方法 ,因为鸣人的影分身的查克拉(prototype)都指向鸣人的六道仙人,那意思就是现在木业丸不仅拥有鸣人的属性和方法,而且还有鸣人的六道仙人的属性和方法。我靠,就这样实现了继承了? 好牛逼原型对象好牛逼啊 ,我终于理解了,之前一直看书看得我是七荤八素的
加入继承的这些语句写完 就是上面说的意思都写代码写出来了
那么我们现在创建一个木叶丸的对象 var Muyewan1=new MuYeWan();
我们滤一下 按照前面原则,创建一个木叶丸类型的对象,那么这个对象的查克拉(prototype)会指向这个木叶丸这个类型的六道仙人,经过上面的语句木叶丸这个类型的六道仙人已经指向了鸣人的一个影分身(鸣人的一个对象)那么所有的木叶丸类型的对象将都包含鸣人这个类型的属性和方法。由于鸣人的对象的查克拉指向鸣人这个类型的六道仙人,那么木叶丸这个类型的对象还将包含鸣人的六道仙人中的所有属性和方法。
此时创建一个木业丸对象他将不仅拥有木叶丸的属性和方法 而且还将拥有鸣人的所有属性和方法还有鸣人的六道仙人的
我们在来理解一下原型链,两个我们理解了,那三个呢。如果现在有一个四代的类型 鸣人要继承四代,按照原型链的方法就是将鸣人的原型=四代的一个对象那么鸣人的对象就包含了鸣人的属性和方法还有四代的属性和方法还有四代的六道仙人的属性和方法,现在木叶丸要是继承鸣人的话那么他将包含所有鸣人和四代的属性和方法
确实书上的不好理解 但是我这么写看起来也不简单 ,但是我自己是理解了。
还是老样子,哪里有不对的话 大家给我指出来 我改正;
标签:
原文地址:http://www.cnblogs.com/diermeng/p/4780568.html