相关疑难解决方法(0)

获取对象类型的名称

是否有Java的JavaScript等价物class.getName()

javascript

1159
推荐指数
12
解决办法
72万
查看次数

IE中不支持function.name.

最近我成了function.name房产的忠实粉丝.

例如,我编写了一个扩展原型的函数.

它的工作方式..

Array.give(
    function forEach() { ... }
);
Run Code Online (Sandbox Code Playgroud)

..然后会让你做..

['a', 'b', 'c'].forEach(function () { ... });
Run Code Online (Sandbox Code Playgroud)

此代码适用于Chrome,Safari,Firefox和Opera,但不适用于IE.

在进行了一小部分挖掘之后,我意识到对于give函数来说,function.name只是返回undefined,就像返回的其他东西一样"forEach".

有没有另一种方法可以在IE中获得该名称,或者我是否会对这个美妙的财产失去爱意?

javascript

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

如何在每个Marionette视图渲染上记录消息?

我有一个具有大量视图的Marionette应用程序.我想在每个渲染时将调试消息记录到控制台(并且可能在将来,在其他事件上)

我目前通过从每个View的onRender方法记录来执行此操作:

MyModule.MyViewType = Marionette.ItemView.extend({
    // ... view properties and methods

    onRender: function() {
      // ... other onRender code
      console.debug('MyModule.MyViewType %s %s', this.cid, 'render');
    }
});
Run Code Online (Sandbox Code Playgroud)

这有效,但它有几个缺点:

  • 必须手动将日志记录代码添加到每个视图.
  • 有几个视图没有自定义onRender操作,因此我只是为了调试而添加方法.那感觉不对.
  • 如果我想完全改变或删除日志记录方法(例如,去生产),我需要改变很多代码.
  • 如果我想为另一个事件添加代码,例如show,我需要为每个视图添加一个事件处理程序或一个新方法.

有没有办法记录每个View渲染而不向每个View添加代码?

javascript backbone.js marionette

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

标签 统计

javascript ×3

backbone.js ×1

marionette ×1