相关疑难解决方法(0)

Javascript回溯

如何在Javascript中获得回溯?

理想特色:

  • 输入函数名称,或匿名函数的一些有意义的标识符,
  • 每个级别的参数列表,
  • 行号.

这可以在标准的ECMAScript中完成吗?

如果没有,可以在常见的网络浏览器方言中完成吗?

谢谢.

编辑 -

谢谢你的建议.

我的方言不支持arguments.callerarguments.callee.

我可以做这个:

try {
    let x = null;
    x .foo ();
}
catch (e) {
        debug (dump (e.stack));
}
Run Code Online (Sandbox Code Playgroud)

这让我得到了一个字符串的信息,一目了然,但走路会很有帮助e.stack.它有标准表格吗?

再次感谢.

javascript reflection callstack backtrace

9
推荐指数
2
解决办法
2万
查看次数

是否有可能获得给定闭包运行的函数名称?

function MyFunction() {
  closure = function() {
    alert('my parent function name is: '/* now what here ? */);
  }
  closure();
}
MyFunction();
Run Code Online (Sandbox Code Playgroud)

结果应该是 my parent function name is: MyFunction

(对于主持人:我不知道为什么stackoverflow阻止我发送这个问题声称它不符合质量标准.我是否必须输入一些多余的文本才能发送它.)

javascript

7
推荐指数
1
解决办法
2537
查看次数

JavaScript获取父函数参数

我有一个功能:

define(['module', 'controller'], function(module, controller){
     (new module).build();
});
Run Code Online (Sandbox Code Playgroud)

在内部module.build我想自动获取父类的参数,如:

module = function(){
    this.build = function(args){
        // make args the arguments from caller ( define ) fn above
    };
};
Run Code Online (Sandbox Code Playgroud)

我知道我可以这样做:

module.build.apply(this, arguments);
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更好的方法.有什么想法吗?

javascript

7
推荐指数
1
解决办法
2719
查看次数

如何知道函数的调用者类

Hello是否有办法知道函数的调用者类名,特别是Java-GWT应用程序?

java gwt

6
推荐指数
1
解决办法
743
查看次数

有没有办法告诉 *WHERE* 在 React/Redux 文件结构中调用了一个动作?

有没有办法告诉WHERE动作被称为反应,和/终极版文件结构中?我正在寻找一个我可以看到被调用的动作。我只是不知道该操作在文件系统中的哪个位置被分派。有没有办法确定使用 Redux 工具?我觉得我现在正在追逐一只兔子。

帮助!谢谢!

reactjs redux

6
推荐指数
1
解决办法
1073
查看次数

你如何找到呼叫者功能?

封闭为"如何找到调用当前方法的方法?"的完全重复.

是否可能与C#?

void main()
{
   Hello();
}

void Hello()
{
  // how do you find out the caller is function 'main'?
}
Run Code Online (Sandbox Code Playgroud)

c# language-features callstack

5
推荐指数
1
解决办法
1万
查看次数

Html选择列表:为什么onchange会被调用两次?

我有一个带有选择列表的页面(ASP.NET MVC页面)

选择列表和onchange事件指定如下:

<%=Html.DropDownList("CompanyID", Model.CompanySelectList, "(select company)", new { @class = "data-entry-field", @onchange = "companySelectListChanged()" })%>
Run Code Online (Sandbox Code Playgroud)

companySelectListChanged函数被调用两次?

我在这个问题中使用了漂亮的代码来获取调用者.

两次调用者都是onchange事件,但是如果我使用以下方式查看调用者调用者:

arguments.callee.caller.caller
Run Code Online (Sandbox Code Playgroud)

第一个调用返回一些系统代码作为调用者(我假设),第二个调用返回undefined.

我正在检查undefined只对onchange做出反应一次,但是这看起来并不理想,whcy会不会被调用两次?

更新:

好的,找到了罪魁祸首!...除了我:-)但是两次调用companySelectListChanged函数的问题仍然存在.

onchange事件直接在select上设置.这会调用companySelectListChanged函数.

..注意'data-entry-field'类,现在在一个单独的链接javascript文件中,所有字段上的更改事件与此类绑定到一个更改保存按钮颜色的函数.这意味着onchange上有两个事件,但是publicSelectListChanged被调用两次?

附加绑定设置如下:

$('.data-entry-field').bind('keypress keyup change',function(e){highLightSaveButtons();});

假设它可能在选择列表上有2个更改事件,它会假设设置按键和键盘事件可能会破坏某些东西吗?

有任何想法吗?

另一个更新:

如果我删除了额外的"更改"绑定,那么select元素看起来很好并且一切正常.当添加'change'绑定时,事件触发一次并且硬连线'onchange'被触发两次.

如果这两个事件都是通过jQuery绑定的,那么一切正常,似乎混合硬连线onchange和jquery绑定的更改事件不能混合?我想这回答了我的问题,但似乎是IE的一个问题,并用jquery绑定这些事件.

html javascript asp.net-mvc

5
推荐指数
1
解决办法
5291
查看次数

如何根据特定javascript源(方法,文件)或消息内容的条件禁用console.log消息

我正在研究使用相当多js库的项目,其中一个正在向控制台输出非常多的东西,它正在污染无线电波,这使得它很难调试....

我知道如何通过覆盖console.log这个完全禁用日志记录,

(function (original) {
    console.enableLogging = function () {
        console.log = original;
    };
    console.disableLogging = function () {
        console.log = function () {};
    };
})(console.log);
Run Code Online (Sandbox Code Playgroud)

但是如何根据消息来源的源(文件/网址)执行此操作?

javascript console.log google-chrome-console

5
推荐指数
1
解决办法
3188
查看次数

Angular 2:检测从哪个组件服务被调用

我有MyService被注入ComponetAComponetB

是否可以找出MyService.myMethod()是从哪个组件调用的?

@Injectable()
export class MyService {

  public myMethod(): void {
    console.log('called from component: ' + component);
  }
}
Run Code Online (Sandbox Code Playgroud)

angular

5
推荐指数
1
解决办法
1326
查看次数

在javascript中确定调用函数

可能重复:
你如何在JavaScript中找到调用者函数?

如何在javascript函数中找到调用(调用堆栈中的前者)函数?

我想确定在onbeforeunload事件中前者被调用的函数是否是__doPostback.

javascript callstack function

3
推荐指数
1
解决办法
7973
查看次数