javascript - 为什么我不能作为动态加载脚本的一部分进入 `return function(){}`?

标签 javascript

我有以下内容:

return function(callback) {
  console.log(callback.toString())
  SystemJS.import('app/shared/shared.js').then(function(result){
    callbackFunction = callback;
    callback(dashboard);
    main();
  });
}

这是作为动态 JS 调用的一部分加载的,

  var script_func = new Function('ARGS','kbn','dateMath','_','moment','window','document','$','jQuery', 'services', result.data);
  var script_result = script_func($routeParams, kbn, dateMath, _ , moment, window, document, $, $, services);

当我进入 script_func 时,它会将我带到为我的文件动态加载的 VM 文件 - 但当我尝试进入最后的 return 语句时,它只是跳到最后并将我返回到原始 script_result = script_func() 调用。

奖励积分:我不知道“动态”在这里是否是正确的术语——我不确定这在 JavaScript 中被称为什么,只是看到类似的东西被称为“动态加载”。如果我把它称为错误的东西,我很乐意得到纠正,这样我实际上可以找到一些关于此的教程:)

最佳答案

您可以单步执行script_func(...),因为有一个函数调用需要单步执行。您无法单步执行 return function() { ... },因为该行上没有发生函数调用。

类似地,您是否希望能够单步执行赋值操作my_func = function() { ... }?你不能进入那里的任何东西,因为那里没有发生需要进入的调用。我正在创建一个函数对象并将其存储在 my_func 中。在调用之前,我无法单步执行存储在 my_func 中的函数。

在您的具体情况下,将创建一个函数对象并将其存储在script_result中。如果您执行了 script_result(...),您就可以进入其中。

关于javascript - 为什么我不能作为动态加载脚本的一部分进入 `return function(){}`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47760333/

相关文章:

javascript长度返回未找到

javascript - setTimeout 函数挂起我的浏览器?

javascript - UIWebView - 加载带有链接资源的本地 .html 文件

javascript - PHP 和 AJAX 下载几 MB 文件卡住网站

javascript - 原型(prototype)上具有默认属性的 es6 类会抛出 Traceur

javascript - 当用户滚动到特定部分时触发动画

javascript - 页面加载 svg 上自动单击按钮

javascript - 如何在页面加载时加载此 jquery 通知栏而不是单击按钮?

javascript - JQuery 第二个()?

javascript - 固定 div 时保持页面布局