1

我有一个带有两个阵列的模型,明亮的和正常的。每个数组都包含表示颜色的对象。我想在模型中实现一种方法,允许设置这种颜色的一些属性(例如色调)。所以我写了这个:

setHue: function(hue) {
    _.each([this.get('brigth'), this.get('normal')], function(colors) {
        _.each(colors, function(color) {
            color.setHue(hue + this.getHue());
        });
    });
},

我认为这很清楚 - 我尝试遍历brightnormal数组中的每种颜色。它不会更新这些数组中的颜色。里面的这个颜色_.each似乎有了新的价值,但看起来只是颜色的副本,而不是参考。有谁知道如何做我想做的事?我的意思是_.each循环,我不想搞砸for,length和索引。

4

2 回答 2

1

明亮的拼写错误。你进入了光明。

于 2012-08-18T01:59:34.610 回答
0

嗯,我认为你在这里有一个普遍的问题。让我们尝试一个例子:

this.get('brigth')

将返回一个数组,而不是一个模型,对吗?

如果是这样的话,

_.each([this.get('brigth'), this.get('normal')], function(colors) { ...

将遍历数组数组,即颜色将得到一个数组,而不是模型或集合。因此,颜色将是数组的一项(我假设是一个字符串)。因此颜色没有方法 setHue。

此外,Paul 也是正确的 this.getHue() this 不是指模型,因为您要切换上下文两次(每个循环一次)。我希望我在这里没有完全弄错。

于 2012-08-17T08:11:42.553 回答