我有一个设置,可以在 ajax 调用中获取一些信息,然后我立即将其中的一些信息用于另一个调用,然后填充一些字段。
问题是我不确定如何创建匿名函数以便它可以调用this.plantName
.
现在 的this.plantName
值为undefined
。
我知道缺少右大括号,但我不会尝试将它们排列起来,因为这会导致混淆,所以请忽略缺少的右大括号。
TabLinks.prototype.plantName = '';
TabLinks.prototype.init = function() {
this.updateTab('PlantDropDown', 'retrievePlants', 'retrieveAllPlants', 'tab3', function() { return this.plantName; });
};
function TabLinks() {
this.updateTab = function(entityname, wsbyid, webservicename, parentContainer, defaultValue) {
$("#" + parentContainer + "link").bind('click', function() {
$.ajax({
type: "POST",
...
success: function(result) {
myData = JSON.parse(result.d);
$.ajax({
type: "POST",
...
success: function(result2) {
...
myelem.value = JHEUtilities.testIsValidObject(defaultValue) ?
defaultValue() :
'';
更新: 这是有效的解决方案,我没有意识到函数的两个返回:
this.updateTab('PlantDropDown', 'retrievePlants', 'retrieveAllPlants', 'tab3',
function() {
var app = this;
return function() {
return function() {
return app.plantName;
}
}()
}
);
所以我不得不这样称呼它:
defaultValue()();