javascript - 如何从 JavaScript 的公共(public)方法中访问私有(private)属性?

标签 javascript oop inheritance prototype

Possible Duplicate:
Javascript: Do I need to put this.var for every variable in an object?

我想在 JavaScript 中创建一个“类”,其他“类”应该继承该“类”。

因此,我使用原型(prototype)对象添加了“公共(public)方法”。

在这些方法中,我想访问我的类的私有(private)属性。

我似乎无法访问它们。我该怎么做呢?这是我的代码:

<!doctype html>

<html>

    <head>
        <title>OOP test</title>

        <script>

            var ParentClass = function(){
                var data = [];
            }

            ParentClass.prototype.addData = function(somedata){
                data.push(somedata); // ReferenceError: Can't find variable: data
            }

            var p = new ParentClass();
            p.addData("foo");

        </script>
    </head>

    <body>
    </body>

</html>

最佳答案

<head>
    <title>OOP test</title>

    <script>

        var ParentClass = function(){
            this.data = [];
        }

        ParentClass.prototype.addData = function(somedata){
            this.data.push(somedata); // ReferenceError: Can't find variable: data
        }

        var p = new ParentClass();
        p.addData("foo");

    </script>
</head>

<body>
</body>

关于javascript - 如何从 JavaScript 的公共(public)方法中访问私有(private)属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13514840/

相关文章:

javascript - webpack,如何管理依赖关系

java - 从 Java 角度到 Python 的基本对象实例化

Java:在同一个包中有循环依赖是不好的做法吗?

java - 如何根据操作系统动态继承?

java - 如何在非抽象类中声明抽象方法

javascript - 如何使用es6的动态导入从静态导入模块?

javascript - Babel 不转译箭头函数 (Webpack)

php - 每次我需要一些东西时创建新的mysql连接对象

css:如何继承整个类

javascript - 如何使用相同的 Prop 重复渲染相同的组件?