从对象的方法中调用“全局”函数

时间:2017-12-12 13:10:24

标签: javascript

我想从对象的方法中调用一个函数。该函数在与对象相同的范围内声明:

function a() {
   return {
      propA: 'something'
   }
}

var b = {
   func: function() {
      var a = a(); //Uncaught TypeError: a is not a function
      console.log(a);
   }
}

b.func();

有没有办法在a中调用b.func而不将其设置为window对象的属性或将其作为参数传递?谢谢。

3 个答案:

答案 0 :(得分:1)

只要对a() afunction a() { return { propA: 'something' } } var b = { func: function() { var c = a(); console.log(c); } } b.func(); 的结果未被调用var b = { func: function() { var a; a = a(); // so here a would be undefined console.log(a); } } 并不重要,是的:

string sampleInput = @"String validation: **OrbitaryValue**=z:\Somepth\Somename\SQL";

答案 1 :(得分:0)

解释器将看到以下代码,如下所示,

setDetailIcon: function(icon) {         
   console.log(icon)        
   this.DetailIconURI = sap.ui.core.IconPool.getIconURI(icon);  
},

基本上变量a被提升并引发了问题。为此使用不同的变量名。

答案 2 :(得分:0)

如果您将a函数定义为自动添加到window对象:



function a() {
   return {
      propA: 'something'
   }
}

var b = {
   func: function() {
      var a = window.a();
      console.log(a);
   }
}

b.func();