首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么我的变量在Underscore.js each函数中没有定义?

为什么我的变量在Underscore.js each函数中没有定义?
EN

Stack Overflow用户
提问于 2012-11-13 13:59:16
回答 2查看 16.3K关注 0票数 19

下面是我的代码:

代码语言:javascript
复制
TextClass = function () {
    this._textArr = {};
};

TextClass.prototype = {
    SetTexts: function (texts) {
        for (var i = 0; i < texts.length; i++) {
            this._textArr[texts[i].Key] = texts[i].Value;
        }
    },
    GetText: function (key) {
        var value = this._textArr[key];
        return String.IsNullOrEmpty(value) ? 'N/A' : value;
    }
};

我正在使用Underscore.js库,并希望像这样定义我的SetTexts函数:

代码语言:javascript
复制
_.each(texts, function (text) {
    this._textArr[text.Key] = text.Value;
});

但是当我进入循环时,_textArr是未定义的。

EN

回答 2

Stack Overflow用户

发布于 2012-11-13 14:13:57

您必须将this作为_.each调用的上下文进行传递,如下所示:

代码语言:javascript
复制
_.each(texts, function (text) {
    this._textArr[text.Key] = text.Value;
}, this);

请参阅http://underscorejs.org/#each的文档

票数 6
EN

Stack Overflow用户

发布于 2014-05-24 00:10:06

请注意,您还可以传递"this“以外的其他内容。例如,我这样做:

代码语言:javascript
复制
var layerGroupMasterData = [[0],[1,2,3],[4,5],[6,7,8,9],[10]];

_.each(layerGroupMasterData,function(layerGroup,groupNum){
    _.each(layerGroup, function (layer, i) {
            doSomethingThatComparesOneThingWithTheOverallGroup(layerGroupMasterData,layer);
    },layerGroups);
},layerGroupMasterData);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13356203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档