命名:createFunctionDelegate()vs createDelegateFunction()?

时间:2011-01-09 13:55:30

标签: javascript naming-conventions

似乎我无法在函数的两个名称之间进行选择:

createFunctionDelegate()createDelegateFunction()

如果重要,该函数的目的是创建一个新函数,在第二个参数的上下文中调用提供的回调函数。例如:

var foo = {
    init: function() {
        setTimeout(App.createFunctionDelegate(this.method, this));
    },

    method: function() {}
}

foo.init()运行时,它设置一个超时,该超时调用一个函数,该函数将执行委托给在this.method(foo)上下文中调用的另一个函数(this)。

无论如何,我不知道应该用哪种方式命名这个功能。这对我很重要,因为我将在数百个地方使用它,有时我会输入一个,偶尔也会输入另一个。这必须改变,我必须选择。

2 个答案:

答案 0 :(得分:3)

我不会使用这些。您想要做的事情将由bind()在ES5中提供。我会定义Function.prototype.bind,如果它已经不存在,如here所述(但请仔细阅读描述和可能的缺点)。

这样,如果支持,您可以确保使用本机功能。

答案 1 :(得分:0)

createDelegate(this.method,this)怎么样?

作为旁注,我见过这种方法的其他地方(并写出来),参数排序是上下文,函数,所以createDelegate(this,this.method)