Javascript对象参数的分配和使用
Javascript Object parameters assignment and usage
所以我有这个JavaScript对象:
var obj = {
conn : null,
first : function(thisIdentity) {
"use strict";
var myObj = this;
$(document).on('click', thisIdentity, function(e) {
e.preventDefault();
$.ajax ({
url : some value,
// other parameters
success : function() {
myObj.conn = new Connection(data.user_id, "127.0.0.1:80");
}
});
},
second : function(thisIdentity) {
"use strict";
var myObj = this;
$(document).on('click', thisIdentity, function(e) {
e.preventDefault();
$.ajax ({
url : some value,
// other parameters
success : function() {
// using myObj.conn now results in UNDEFINED or NULL
}
});
}
};
现在,在第一个函数的AJAX调用中,基本上值被分配给了conn
变量,并且值肯定被分配了,但当我试图在第二个函数中使用相同的值时,它会显示
myObj.cn未定义/为空
我只想知道如何为对象的属性赋值,并保留它以备将来使用?
我确实尝试在第二个函数中使用this.conn = new Connection(params);
和this.conn
,但它仍然说this.conn
或myObj.conn
为空。谢谢
您需要等待第一个ajax调用完成,请尝试以下操作:
var obj = {
conn : null,
promise: null,
first : function(thisIdentity) {
"use strict";
var myObj = this;
$(document).on('click', thisIdentity, function(e) {
e.preventDefault();
myObj.promise = $.ajax({
url : some value,
// other parameters
success : function() {
myObj.conn = new Connection(data.user_id, "127.0.0.1:80");
}
});
});
},
second : function(thisIdentity) {
"use strict";
var myObj = this;
$(document).on('click', thisIdentity, function(e) {
e.preventDefault();
if (myObj.promise) {
myObj.promise.then(function() {
$.ajax({
url : some value,
// other parameters
success : function() {
// using myObj.conn now results in UNDEFINED or NULL
}
});
});
}
});
}
};
相关文章:
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- 在Javascript中重新分配对象变量时,原始对象会发生什么
- JS [ES5] 如何使用资源库和获取器分配对象
- 正在破坏分配.分配对象和它's的孩子在两个不同的变量中
- 我们是否可以安全地从套接字参数的回调中分配对象引用
- 如何在 ng-repeat 中按键分配对象数组
- 在 jQuery/JavaScript 中动态分配对象属性以通过 ajax 发布
- 在Javascript中分配对象:浅拷贝或深度拷贝
- 在JavaScript中分配对象属性会以一种奇怪的方式更改对象
- 自动分配对象数字键
- React:如何分配对象道具的默认属性
- Lodash重新分配对象数组来构建树
- ES6/7中选择性地分配对象属性
- 如何使用“闭包”异步分配对象
- 无法使用sessionStorage分配对象
- 在数组javascript中分配对象
- 当ES6中存在结构相似性时,减少分配对象属性的冗余
- AngularJS:重新分配对象与替换控制器中的对象
- Angular$scope未按预期工作.正在尝试在控制器$scope和$scope.function作用域中分配对象值
- 在js中取消分配对象字面值使用的内存