节点.js如何使一个变量更改也适用于另一个变量更改
node.js how to make one variable change apply to another one aswell?
有没有某种方法可以拥有某种"共享"变量?我想做的是:
var id = 5;
var player = new Player(id);
var array1[0] = player;
var array2[0] = player;
array1[0].id = 8
console.log(array1[0]); //8
console.log(array2[0]); //8
在 JavaScript 中,您不会将对象直接存储在变量中,而是存储对该对象的引用。
这意味着,您可以有两个指向同一对象的变量 - 您只需复制引用:
var a = {test: "test"};
var b = a;
console.log(a === b) // true
在这种情况下,如果您通过a
改变对象,然后通过b
读取它,您将看到更改。
通过正确实施Player
,您可以使其为您工作:
var Player = function(id) {
this.id = id;
}
Player.prototype.setId = function(id) {
this.id = id;
}
Player.prototype.getId = function() {
return this.id;
}
var player = new Player(5);
console.log(player.getId()); // 5
var arrA = [];
var arrB = [];
arrA.push(player);
arrB.push(player);
console.log(arrA[0].getId()); // 5
console.log(arrB[0].getId()); // 5
arrA[0].setId(10);
console.log(arrA[0].getId()); // 10
console.log(arrB[0].getId()); // 10
查看 MDN 以获取有关使用对象的更多信息。
相关文章:
- JQueryhide()不适用于Mozzilla,但适用于Chrome
- PHP中的setcookie仅适用于localhost
- html5 drawImage适用于firefox,而不是chrome
- 提供“;onClick"适用于iPad(触摸屏)和桌面用户的默认功能
- AngularJS-使模型变量可用于jQuery
- jQuery表单验证适用于Mozilla和Internet Explorer,但不适用于Chrome或Safari
- ResolveUrl是否适用于././也
- Firebase updateChildValues适用于IOS,但不适用于Web和Android
- JavaScript警报适用于int,但不适用于string
- SQLite插件适用于Mac和Windows,但不适用于手机上的Safari
- Regex Replace仅适用于Last Match
- 使变量可用于不带闭包的异步调用
- window.onload适用于aspx页面,但不适用于普通html
- Jquery Ajax POST不工作.适用于GET
- 画布上的自定义字体仅适用于safari
- Javascript仅适用于alert()和Debug模式
- JS适用于Firefox和Safari,但不适用于Chrome.此处'是我的网站
- jQuery - IE7 - 变量未定义(适用于Chrome,Safari,Firefox)
- javascript 函数 - 传递给函数的变量适用于IE,但不适用于Firefox
- 在用户定义的变量上获得selecteindex -适用于IE而不是Firefox