Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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 从Adobe DTM中返回的匿名函数中寻找全局函数_Javascript_Function_Adobe_Adobe Analytics - Fatal编程技术网

Javascript 从Adobe DTM中返回的匿名函数中寻找全局函数

Javascript 从Adobe DTM中返回的匿名函数中寻找全局函数,javascript,function,adobe,adobe-analytics,Javascript,Function,Adobe,Adobe Analytics,下面的代码片段不是实际的代码,它们只是用来解释我的问题。所以请不要把注意力集中在实际的功能上。我正在使用Adobe DTM。我不知道如何获取一个返回值的匿名函数(作为源全局函数的数据元素?如果我的数据元素中有一个普通的匿名函数,则一切正常。如果匿名函数返回,则它不工作?是否有任何方法使其工作?示例: //global function function _myGlobalFunct(str){ return (str); } 数据元素中匿名函数的以下代码调用全局函数,并按预期工作: // wo

下面的代码片段不是实际的代码,它们只是用来解释我的问题。所以请不要把注意力集中在实际的功能上。我正在使用Adobe DTM。我不知道如何获取一个返回值的匿名函数(作为源全局函数的数据元素?如果我的数据元素中有一个普通的匿名函数,则一切正常。如果匿名函数返回,则它不工作?是否有任何方法使其工作?示例:

//global function
function _myGlobalFunct(str){
return (str);
}
数据元素中匿名函数的以下代码调用全局函数,并按预期工作:

// working anonymous function
 (function () {
 window._myGlobalFunct("value1");
 })()
但是数据元素中的以下返回匿名函数不调用my函数,但不会抛出任何错误:

// Not Working Properly but doesn't throw any errors?
return (function() { 
var rvalue = document.title || "No Title";
window._myGlobalFunct(rvalue);
return rvalue;
})();

我知道函数正在执行,但Chrome中没有出现任何错误?

我不认为您可以返回一个自调用函数,然后在函数中再次返回。

我不认为您可以返回一个自调用函数,然后在函数中再次返回。

因为我还不能评论,所以我将在这里详细解释,为什么这确实是一个重复。Niet The Dark Absol在我上面提到的链接(参考:)中的第一个答案清楚地说:

return
仅在函数内部有意义。函数中没有函数 你的密码

要将此应用于您的案例:

return (function() {
是您的第一行,如果您将所有内容封装在另一个函数中并调用该函数,则所有内容都将正常工作,例如:

function myFunction(){
  return (function() { 
    var rvalue = document.title || "No Title";
    window._myGlobalFunct(rvalue);
    return rvalue;
  })();
}

然后你可以调用
myFunction()
来获取你的返回值。我希望这对你有所帮助。

因为我还不能发表评论,所以我将在这里详细解释它,为什么它确实是重复的。Niet The Dark Absol在我上面提到的链接(供参考:)中的第一个答案清楚地说:

return
仅在函数内部有意义。函数中没有函数 你的密码

要将此应用于您的案例:

return (function() {
是您的第一行,如果您将所有内容封装在另一个函数中并调用该函数,则所有内容都将正常工作,例如:

function myFunction(){
  return (function() { 
    var rvalue = document.title || "No Title";
    window._myGlobalFunct(rvalue);
    return rvalue;
  })();
}

然后您可以调用
myFunction()
来获取返回值。我希望这对您有所帮助。

DTM的数据元素执行函数中提供的代码(这里的其他用户可能不清楚),因此在此处输入/显示的代码中,函数外将有一个
返回值
。您没有从函数返回值(或者如果您试图在函数内更新
rvalue
,并且
rvalue
不在正确的范围内(窗口与本地))。在任何情况下,您使用匿名函数是否有任何原因?下面应该可以:

var rvalue = document.title || "No Title";
return window._myGlobalFunct(rvalue);
如果仍然需要匿名函数,请确保从函数中获取返回值:

return (function() { 
  var rvalue = document.title || "No Title";
  return window._myGlobalFunct(rvalue);
})();

DTM的数据元素执行函数内提供的代码(此处的其他用户可能不清楚),因此在此处输入/显示的代码中,函数外将有一个
返回值(或者,如果您试图在函数中更新
rvalue
,并且
rvalue
不在正确的范围内(窗口与本地))。在任何情况下,您使用匿名函数是否有任何原因?以下应能起作用:

var rvalue = document.title || "No Title";
return window._myGlobalFunct(rvalue);
如果仍然需要匿名函数,请确保从函数中获取返回值:

return (function() { 
  var rvalue = document.title || "No Title";
  return window._myGlobalFunct(rvalue);
})();

重复使用:当在Chrome中使用时,您将收到非法返回语句的错误。我在Chrome中运行我的,没有收到任何错误。此外,您提到的重复问题与我的完全不同。重复使用:当在Chrome中使用时,您将收到非法返回语句的错误。我在Chrome和没有出现任何错误。另外,您提到的重复问题与我的问题完全不同。我只使用了这些片段、简化的示例来解释我的情况。全局函数实际上是一个帮助函数,匿名函数将是在Adobe DTM中运行的数据元素。我只使用了这些片段、简化的示例为了解释我的情况,全局函数实际上是一个helper函数,而匿名函数则是在adobedtm中运行的数据元素。