如题:为什么用原生js写一个插件,为什么使用.prototype时,this上面的变量不能共享?
案例来自一个小羊肖恩的案例,很简单,所以选择使用原生js来写,而遵循一般写插件的原则,我把涉及到的函数都写在了原型链prototype上,此时出现一个问题,原型链上的方法获取不到构造函数上定义的值。(console时输出undefined)
为什么会这样?
后来我意识到,在学习jQuery时,有一部很重要的操作,就是 jQuery.fn.init.prototype = jQuery.prototype;
为的就是将原型链上init的prototype与jQuery的prototype共享。
所以,我添加了一部操作(构造函数是Sheep)
Sheep.prototype.init.prototype = Sheep.prototype;
然后在构造函数上设置的变量this.xxx成功获取到。