首页 > 解决方案 > 使用构造函数创建对象时,公共成员如何能够访问私有成员?- JavaScript

问题描述

好的,这个问题可能看起来很傻,但我正在更深入地学习 javascript 中的面向对象概念,所以为了避免混淆,我不得不问这个问题。

    const ObjConstructor = function() {
    this.name = 'object';
    let value = 1;

    this.destroyValue = function() {
        value = 0;
    }

    this.getValue = function() {
        return value;
    }
    }

上面的代码实现了一个对象构造函数,它有一个私有成员value。我假设每次使用此构造函数创建对象时它的工作方式是它基本上调用对象call()上的方法ObjConstructor并返回分配给它的成员(在本例中是名称、destroyValue 和 getValue)的对象。

但是当我理解如何destroyValuegetValue方法能够访问value这里的私有变量时,我感到很困惑。因为它不是当前对象的成员,所以调用方法,并且value它是构造函数的局部变量,在它第一次执行构造函数创建对象后被销毁。

标签: javascript

解决方案


推荐阅读