使用Jquery如何实现继承
如题,
var A = function(){};
A.prototype.toString = function(){return "aaa"};
var B = function(){};
$.fn.extend(B, A);
var b = new B();
但是 console.log(b instanceof A);//false
上面的继承只是把toString方法copy到了B中,但instanceof却为false,如何让属性方法也有,并且instanceof也为true
------解决方案--------------------jquery的extend不是继承用的,是用来扩展对象的。。
你上面的代码只是让B.prototype = A.prototype而已
------解决方案--------------------
jquery的那两个extend是用来合并对象的
A.prototype中的自定义toString没有被拷贝到B中
你可以这样
var B = function(){};
B.prototype = new A()
http://code.usuishi.com/Web/ArticleView.aspx?ArticleID=176
------解决方案--------------------所谓的公用是你自己控制的把 看你的‘公用’到什么范围了
外面式:
可以使用最顶层的 Object.prototype.privateFunction
var A = function(){};
A.prototype.toString = function(){ this.privateFunction();};
里面式:
(fucntion(me){
function privateFunction(){}
me.A = function(){};
A.prototype.toString = function(){ privateFunction();};
A.prototype.toString222 = function(){privateFunction();};
})(window);
js没有里面外面的概念 只有闭包吧