我想设置一个变量以指向新创建的对象中的属性以保存“查找”,如下例所示。基本上,我认为变量是对对象属性的引用。不是这种情况;它看起来像变量保存值。第一个 console.log 是 1(这是我想分配给 photoGalleryMod.slide 的值)但是当查看 photoGalleryMod.slide 时,它仍然是 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 中无法说“请给我这个变量的别名”。
关于javascript - 关于指向对象属性的 Javascript 指针的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5667810/