使用Dojo lang.hitch将参数传递给被调用函数

2admgd59  于 2022-12-20  发布在  Dojo
关注(0)|答案(2)|浏览(236)

我在ESRI的Web AppBuilder环境(使用ESRI Javascript 3.x API)中使用dojo。
无论如何,我创建了一个按钮,在按钮的onClick方法中,我希望能够使用lang.hitch调用另一个函数(以保持函数在作用域中),但被调用的函数需要一个参数,我似乎无法传入它,我只能像这样调用函数。
第一个月
当然,my _createNewLocation函数需要一个参数,就像这样。
_createNewLocation(param){...do stuff}
我不确定如何将该参数传递给onClick方法。仅仅像这样添加参数是不起作用的。它会抛出TypeError。有什么想法吗?
lang.hitch(this, this._createNewLocation(param))

new9mtju

new9mtju1#

只需绑定参数
第一个月
这将把参数作为第一个参数传递给函数,this也是绑定函数的上下文
正如下面的评论中所指出的,hitch是dojos对bind的实现,也应该使用params,但如果是这样的话,您甚至不需要使用hitch,只需调用
onClick: this._createNewLocation.bind(this,param);

oxcyiej7

oxcyiej72#

如果使用lang.hitch,则不需要使用bind。只需将param作为第三个参数传递即可。前两个参数之后提供的任何参数都将传递给函数。

onClick: lang.hitch(this, this._createNewLocation, param);

如果您愿意,可以使用vanilla bind()方法:

onClick: _createNewLocation.bind(this, param);

myObject.prototype._createNewLocation = function(param, evt) {
    console.log(param, evt);
}

相关问题