Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript requirejs依赖函数的this is window_Javascript_Requirejs - Fatal编程技术网

Javascript requirejs依赖函数的this is window

Javascript requirejs依赖函数的this is window,javascript,requirejs,Javascript,Requirejs,我使用requirejs 一种依赖是 define(function(){ ..... fusionchart = function(){ this.xxxx = ....;//the statement catch wrong,this is window not the object } return fusionchart; }); 我不熟悉requirejs,我不知道为什么,以及如何避免它这里的require没有什么问题。这在内部函数中始终指向窗

我使用requirejs 一种依赖是

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

我不熟悉requirejs,我不知道为什么,以及如何避免它

这里的require没有什么问题。这在内部函数中始终指向窗口

阅读

如果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');
});

谢谢,我改为使用shim,比如requirejs.config{shim:{'fusionCharts':{exports:'fusionCharts'}};而且FusionCharts.js不兼容,之前没有定义,但这仍然是Window您是否创建FusionCharts的新实例?