相关疑难解决方法(0)

使用严格时,为什么匿名函数中的"this"未定义?

在严格模式下使用javascript时,为什么这个匿名函数未定义?我理解为什么这可能有意义,但我找不到任何具体的答案.

例:

(function () {
    "use strict";

    this.foo = "bar"; // *this* is undefined, why?
}());
Run Code Online (Sandbox Code Playgroud)

小提琴测试:http://jsfiddle.net/Pyr5g/1/ 查看记录器(firebug).

javascript anonymous-function use-strict

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

为什么要调用"apply"而不是直接调用函数?

在查看raphael或g.raphael或其他库的源代码时,我注意到开发人员做了类似这样的事情:

var val = Math.max.apply(Math, data_array);
Run Code Online (Sandbox Code Playgroud)

为什么不直接调用函数,例如:

var val = Math.max(data_array);
Run Code Online (Sandbox Code Playgroud)

谢谢.

javascript splat

12
推荐指数
2
解决办法
2651
查看次数

CSS中是否可以使用备用嵌套样式?

我正在做一个小实验,试图替换嵌套div的背景颜色.

这是我打算实现的(没有内联样式):

<div style="background: #fff;">
    <div style="background: #000;">
        <div style="background: #fff;">
            <div style="background: #000;">
                and so on...
            </div>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我觉得我一定错过了一些明显的东西!我试过div:nth-of-type(2n)但这似乎只适用于一个级别.

这是用于生成div的实验,因此解决方案需要无穷无尽(不是div div div div = white的行).我知道使用JavaScript非常容易,只需要寻找纯CSS解决方案.

css

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

如何理解下划线的调用

我试图了解下划线的invoke()功能,但在某些方面遇到了麻烦。这是带注释的源代码:

  _.invoke = function(obj, method) {
    var args = slice.call(arguments, 2);
    var isFunc = _.isFunction(method);
    return _.map(obj, function(value) {
      var func = isFunc ? method : value[method];
      return func == null ? func : func.apply(value, args);
    });
  };
Run Code Online (Sandbox Code Playgroud)

在此示例中:

_.invoke([[5, 1, 7], [3, 2, 1]], 'sort');
=> [[1, 5, 7], [1, 2, 3]]
Run Code Online (Sandbox Code Playgroud)

我了解发生了什么事;但是,在源代码中,我不了解的功能args。在哪种情况下需要使用其他参数?

我对编程也很陌生,我在为如何apply使用这里而苦苦挣扎。我猜是因为我不完全了解的使用invoke,即的使用args。仍然,在查看Mozilla文档中提供示例时,使用了一个示例Math.max.apply(*null*, numbers),那么为什么将其应用于value源代码中?

注意:我已经阅读了许多关于thisthisthis …

javascript underscore.js

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