我想设置一个变量,使其指向新创建的对象中的属性,以保存“查找”,如下面的示例所示。基本上,我认为变量是对对象属性的引用。不是这种情况;看起来变量包含值。第一个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);

最佳答案

看起来变量包含值


没错由于您使用的是数字基元,因此变量包含值而不是指向它。变量仅在引用对象时包含引用。

做到这一点的方法是使用对象属性并指向对象-这正是photoGalleryMod及其slide属性所具有的。

07-26 05:09