requirejs依赖函数这是窗口

时间:2014-06-09 10:54:42

标签: javascript requirejs

我使用requirejs 和一个依赖是

define(function(){
     .....
   fusionchart = function(){
       this.xxxx = ....;//the statement catch wrong,this is window not the object
  }
   return fusionchart;
});

我是requirejs的新手,我不知道为什么,以及如何避免它

1 个答案:

答案 0 :(得分:0)

这里的要求没有任何问题。 "这"内部函数总是指向窗口。

阅读http://javascriptweblog.wordpress.com/2010/08/30/understanding-javascripts-this/

如果fusionchart是构造函数,那么:

define(function(){
    var FusionChart = function(){
       this.x = 0;
    };
    return FusionChart;
});

代码中的其他地方:

define(function(){
    var FusionChart = require('FusionChart');
    var fusionChartInstance = new FusionChart();
});

你可以通过返回新的FusionChart()使FusionChart表现为单身人士;然后,您不必在需要时创建实例。 Requirejs将始终指向相同的参考。

define(function(){
    var FusionChart = function(){
       this.x = 0;
    };
    return new FusionChart();
});

define(function(){
    var fusionChartInstance = require('FusionChart');
});