小编Geo*_*ess的帖子

在javascript原型事件处理程序中保留'this'引用

this在对象原型中存储的事件处理程序中保留javascript引用的正确方法是什么?我想远离创建像'_this'或'that'这样的临时变量,我不能使用像jQuery这样的框架.我看到很多人谈论使用'绑定'功能但不确定如何在我给定的场景中实现它.

var Example = function(foo,bar){
    this.foo = foo;
    this.bar = bar;
};
Example.prototype.SetEvent = function(){
    this.bar.onclick = this.ClickEvent;
};
Example.prototype.ClickEvent = function(){
    console.log(this.foo); // logs undefined because 'this' is really 'this.bar'
};
Run Code Online (Sandbox Code Playgroud)

javascript oop this event-handling

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

使用此/ self引用的javascript闭包会导致内存泄漏吗?

根据我对内存泄漏的理解,在闭包内引用超出范围的var会导致内存泄漏.

但是,创建"that"var也是一种常见做法,以保留"this"引用并在闭包中使用它,尤其是对于事件.

那么,做这样的事情有什么用呢:

SomeObject.prototype.createImage = function(){
    var that = this,
        someImage = new Image();
    someImage.src = 'someImage.png';
    someImage.onload = function(){
        that.callbackImage(this);
    }
};
Run Code Online (Sandbox Code Playgroud)

这不会给项目增加一点泄漏吗?

javascript events memory-leaks this

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

Algolia facet过滤空/空值

有没有办法按属性值为null或空字符串过滤命中?

即,向我展示所有没有作者的对象

facetFilters =作者:null

facetFilters =作者: ''

或者将其包含在OR值列表中?

即,向我展示作者设置为吐温或没有作者的所有对象

facetFilters =(作者:吐温,作者:null)

facetFilters =(作者:吐温,作者: '')

facet algolia

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

MongoDB 索引:对象键与字符串数组

我是 MongoDB 的新手,一直在研究模式设计和索引。我知道您可以对属性进行索引,而不管其值(ID、数组、子文档等)如何,但我不知道对字符串数组或嵌套对象的键进行索引是否有性能优势。

这是我正在考虑的两种场景的示例(在 Mongoose 中):

// schema
mongoose.Schema({
    visibility: {
        usa: Boolean,
        europe: Boolean,
        other: Boolean
    }
});
// query
Model.find({"visibility.usa": true});
Run Code Online (Sandbox Code Playgroud)

或者

// schema
mongoose.Schema({
    visibility: [String] // strings could be "usa", "europe", and/or "other"
});
// query
Model.find({visibility: "usa"});
Run Code Online (Sandbox Code Playgroud)

文档可以具有一种、两种或全部三种可见性选项。

此外,如果我采用布尔对象设计,我可以简单地索引可见性字段,还是需要在美国、欧洲和其他国家建立索引?

indexing performance schema mongoose mongodb

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

字段和模式级别的 Mongoose 索引

我知道如果实施得当,索引可以成为快速检索数据的宝贵工具。我希望能够扫描我的文档以查找某个字段值字段值的组合。

我将索引两个字段(类别、标签)。类别是一个字符串,标签是一个数组。我需要能够查询特定类别中的项目和/或包含特定标签的项目。

下面是三个例子:

  1. 显示类别中的所有文件:“汽车”
  2. 显示所有包含标签的文件:“electric”
  3. 向我显示“汽车”类别中包含“电动”标签的所有文档

两个字段的模式级别索引是否足以满足所有三种情况?

docSchema.index({category:1, tags:1});
Run Code Online (Sandbox Code Playgroud)

或者我是否还需要在字段级别定义它们,以支持我只搜索单个字段时的场景?

docSchema = mongoose.Schema({
    category: {
        type: String,
        index: true
    },
    tags: {
        type: [String],
        index: true
    }
});
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb

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

循环内的局部变量是否被垃圾收集?

我想知道在循环之外放置在循环中引用的任何变量是否更有效 - 或者它们是否可以像函数中的变量一样收集垃圾?

var obj = {key:'val'};
for(var i=0; i<10; i++){
    console.log(obj);
}
Run Code Online (Sandbox Code Playgroud)

要么

for(var i=0; i<10; i++){
    var obj = {key:'val'};
    console.log(obj);
}
Run Code Online (Sandbox Code Playgroud)

我试图在我的浏览器的分析器中运行一些内存测试,但仍然无法分辨哪种方法更好.

javascript performance garbage-collection

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