JS类,构造函数,继承,对象的理解
//动物 function Animal(name){ this.name = name; } Animal.prototype.wow = function(wow){ console.log(this.name+"在"+wow); } //狗 function Dog(name){ //继承动物构造属性 Animal.call(this,name); } //狗 继承 动物 /* *怎样狗才能继承动物? *Dog.prototype 应该指向的是 new Animal(); *只有这样 大黄狗 才会继承 Animal.prototype.wow *因为实例对象才可以调用原型方法 *Animal.prototype 也就成了 Dog 的 父类的方法 */ Dog.prototype = new Animal(); /* *因为Dog.prototype = new Animal(); *会导致 Dog.prototype.constructor 也指向了 Animal *只有Dog.prototype.constructor == Dog 从新指向回dog *实例对象应该指向实例化构造函数本身 Dog */ Dog.prototype.constructor = Dog; Dog.prototype.guard = function(){ console.log(this.name+"在守家!"); } //大黄狗 var bigYellowDog = new Dog("大黄狗"); bigYellowDog.wow("汪汪!!");//大黄狗在汪汪 bigYellowDog.guard();//大黄狗在守家
这段时间在看类 构造函数 有点搞不明白, 通过翻书看网上别人的说法。
然后有了上面自己的理解, 希望可以帮助到同样困惑的人, 如有不对的地方 还请指正。
谢谢!
事实上,有些东西,我讲的并不是很好。
只不过在自己理解后,去尝试写的一个简单例子,还有很多优化的地方。
或许下面的几篇文章更能帮助到你,在你还觉得不懂的时候。
抛开所有,像我这样写一个简单的继承或许对你有帮助。
再次感谢,大神们,下面是阮大神的几篇文章,希望能帮助到你。