;(function($){
var LightBox=function(){
var self=this;
//创建遮罩对象
this.popupMask=$('<div id="G-ligthtbox-mask">');
//创建lightbox外层
this.popupWin=$('<div id="G-lightbox-popup">');
this.bodyNode=$('body');
this.renderDOM();
}
LightBox.prototype={
renderDOM:function(){
alert(this)
}
}
window["LightBox"]=LightBox;
})(jQuery);
renderDOM这个函数是在原型对象上,但是为什么LightBox对象上能正常调用,??能够帮我解释一下吗?谢谢!
因为LightBox对象上有一个属性__proto__,是指向了他自己的原型(LightBox.prototype),而这里LightBox对象本身是没有renderDOM这个函数的,因此会沿着__proto__向上查找,找到LightBox.prototype,而它上面有这个函数,就可以正常调用了,你既然了解原型,应该知道原型链吧,这个就是原型链