函数调用的问题

来源:-

huangtinggan

2016-07-06 23:44

;(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对象上能正常调用,??能够帮我解释一下吗?谢谢!

写回答 关注

1回答

  • stone310
    2016-08-31 11:53:47

    因为LightBox对象上有一个属性__proto__,是指向了他自己的原型(LightBox.prototype),而这里LightBox对象本身是没有renderDOM这个函数的,因此会沿着__proto__向上查找,找到LightBox.prototype,而它上面有这个函数,就可以正常调用了,你既然了解原型,应该知道原型链吧,这个就是原型链

JS插件开发之LightBox图片画廊(上)

图片画廊插件开发综合演练,快来加入我们的课程吧

27071 学习 · 81 问题

查看课程

相似问题