因为你的这个this的函数是匿名函数啊,这样会指向全局变量,如果不是匿名函数会指向包含this的函数,如果你想指向上级的函数,那就在上一级声明一下:
function fn(){
var that=this;
function(){
//在这用that就指向fn函数
}
}
还是不懂我私聊我,我为你详细解答
你var了一个Modal,然后再里面又声明了一个function的Modal,function里的this是指向的function,当然获取不到你在下面定义的save了。
但是this为什么是undefined 呢
一般情况下this是全局变量即window对象,这里是有严格模式this默认为undefined。你可以返回一个new Modal()来返回,使得this绑定一个新建的对象,就可以使用save方法了。
你用require(,Modal) 。 实际上会执行Modal 函数,相当于调用Modal(); 在非严格模式下 ,this指向window。 在严格模式下this不容许直接指向window,为undefined。 应该这么写 require(【‘jquery’,‘common’】,function(){return new Modal()})
this,就是谁调用就是谁