javascript – this.someFunction.call(this,param)的目的是什么?

我在很多地方遇到过一些具有这种模式的代码
this.someFunction.call(this,param);

但在我看来,这只是一种更冗长的打字方式

this.someFunction(param)

该模式有时会出现在作为回调提供的函数内.碰巧使用Backbone,如果相关的话.像这样的东西:

Backbone.View.extend({
    // other stuff ...

    someFunction: function(param) {
        // ...
    },anotherFunction: function() {
        this.collection.on("some_event",function() {
            this.someFunction.call(this,param);
        });
    }
});

模式实际上是否具有不等于this.someFunction(param)的效果,还是有人只是担心闭包没有捕获到正确的?

感谢您的任何见解!

解决方法

Does the pattern actually have an effect that isn’t the equivalent of this.someFunction(param)?

不,他们确实是一样的.假设this.someFunction是一个从Function.prototype继承.call的函数(但这是挑剔).

看起来有些人过于谨慎,或者代码是一些没有使用过两次的东西.或者作者可能知道this-context-in-callbacks issue但未能正确处理它.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...