Javascript 对象方法不更新变量
Javascript object method does not update variable
var myUser = (function () {
var username = "",
var isConnected = false;
return {
setUsername: function (n) {
username = n;
},
setConn: function (connStatus) {
isConnected = connStatus;
},
user: username,
isCon: isConnected
};
}());
当我打电话时
myUser.setUsername("user123");
用户名变量不会更新。
有什么建议吗?
看起来您想使用 myUser.user 来引用更新的用户名值。但是,如果是这种情况,则不起作用。setUsername 更新用户名变量,但 myUser.user 仅指向用户名的初始值,即 "。它不会指向更新的用户名值
要解决此问题,您可以更改
user: username,
自
user: function() {
return username;
},
这可能是使用原型模型的更好情况:
function User(prop) {
prop = prop || {};
this.username = prop.username || '';
this.isConnected = prop.isConnected || false;
}
User.prototype = {
setUser: function(uname) { this.username = uname; },
setConn: function(status) { this.isConnected = status; }
};
var myUser = new User();
myUser.setUser('user1234');
// OR
var myUser = new User({ username: 'user1234' });
console.log(myUser.username); //=> 'user1234'
....
},
user: username,
isCon: isConnected
user: username
强制计算username
,返回 "。这更容易弄清楚发生了什么
var obj = {
log: console.log("printed when init")
}
相关文章:
- Jquery-每个循环不更新变量
- 函数返回后更新变量
- 我无法通过angularjs中的指令更新变量
- 可以't在quizz页面范围问题上用最终分数更新变量
- 如何在AJAX会话之外更新变量?(Backbone JS/CoffeeScript)
- Javascript 对象方法不更新变量
- 当jquery中的输入发生更改时更新变量
- 无法使用AngularJS更新变量
- 在arr.splice()之后更新变量
- Javascript承诺并更新变量
- jQuery-在输入值更改时更新变量
- 使用数据属性通过 jquery 定位和更新变量
- 从数组中删除不会更新变量内的引用
- 冒泡 从嵌套函数更新变量
- 在 .click 上使用 $.ajax 更新变量
- Javascript - Bootstrap-Slider,如何根据滑块的值更新变量
- JavaScript Ajax 不按时更新变量
- 如何在 JS 中更新变量
- Javascript 没有更新变量
- 在函数中更新变量时,变量不会反映视图中的更新