我在javascript dojo工具包中有一个javascript模块。但是我对使用此关键字有疑问。
define(["dojo/_base/declare","database/tool"],
function (declare, databaseTool) {
return declare(null, {
person: null,
spatialReference: null,
constructor: function (parameters) {
this.person = parameters.person;
},
activatePerson: function () {
var db = new databaseTool();
var personOptions = {
"isActivated": true
};
var onActivated = function(result) {
var updatedPerson = result.person;
var oldPerson = this.person; //retuns <div id="person"/>
};
db.update(personOptions, onActivated );
}
});
})
我想通过此关键字person object
在onActivated
方法中使用模块。但是this.person不返回javascript对象。它返回<div id="person...>
Dojo有一个用于该函数的函数hitch()
(来自dojo/_base/lang
模块)。您的解决方案将是:
var onActivated = function(result) {
var updatedPerson = result.person;
var oldPerson = this.person; //retuns <div id="person"/>
};
db.update(personOptions, lang.hitch(this, onActivated) );
它接受两个参数,第一个参数是用作范围(this
)的对象,第二个参数开始功能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句