关于Javascript指针指向对象属性的问题
Question about Javascript pointer to an object property
我想设置一个变量来指向新创建对象中的属性,以保存"查找",如下面的示例所示。基本上,我认为变量是对对象属性的引用。事实并非如此;看起来这个变量保存了这个值。第一个console.log是1(这是我想分配给photoGalleryMod.slide的值),但当查看photoGalleryMod. log时。滑动,还是0
有办法做到这一点吗?谢谢。
(function() {
var instance;
PhotoGalleryModule = function PhotoGalleryModule() {
if (instance) {
return instance;
}
instance = this;
/* Properties */
this.slide = 0;
};
}());
window.photoGalleryMod = new PhotoGalleryModule();
/* Tried to set a variable so I could use test, instead of writing photoGalleryMod.slide all the time plus it saves a lookup */
var test = photoGalleryMod.slide;
test = test + 1;
console.log(test);
console.log(photoGalleryMod.slide);
是的,您正在复制该值,因为"slide"被设置为基本类型。试试这个:
this.slide = [0];
和
var test = photoGalleryMod.slide;
test[0] = test[0] + 1;
然后更改日志记录:
console.log(test[0]);
console.log(photoGalleryMod.slide[0]);
在这种情况下,您将看到和都有对同一对象的引用。不像其他语言(c++), JavaScript没有办法说"请给我这个变量一个别名"。
看起来变量保存的值是
这是正确的。由于您使用的是数字原语,因此变量包含值,而不是指向它。变量只有在引用对象时才包含引用。
方法是使用对象属性并指向对象 —这正是photoGalleryMod
和它的slide
属性。
相关文章:
- JavaScript Pub/Sub属性访问问题
- 使用导航属性创建Kendo UI网格模型的问题
- 使用jQuery设置HTML5属性值时出现问题
- 将输入值设置为ng模型属性[Angular]时出现问题
- 我该如何解决这个问题?“未捕获的类型错误:无法读取 null 的属性'appendChild'”
- 奇怪的数据属性布尔问题
- HTML:密码字段中的HTML5占位符属性问题 - 显示正常文本
- 更改 img src 属性问题
- 访问Javascript对象属性问题
- 声明javascript对象属性问题
- 环回相关的模型属性问题
- 文本框只读属性问题与我的struts应用程序
- JavaScript中的搜索栏样式属性问题
- 框架"src"属性问题
- 类和属性问题
- Microsoft Edge上的SelectionStart属性问题
- Javascript压缩和对象属性问题
- CSS使用JavaScript在表中显示属性问题
- img属性问题re:IE-->赢得't显示图像的本机宽度,恢复为1px宽
- jQuery html属性问题