0

「JavaScript Web アプリケーション」を使用して、作成したクラス ライブラリを追加したいと考えています。これがフィドルhttp://jsfiddle.net/andrewjmead/gXMp8/です。現在は機能していますが、コードで __proto__ を使用しないことが最善であると聞いたことを覚えています。現在、これを使用して、プライベート変数を操作する関数を作成しています。

現在、Cat クラスは Animal クラスを継承しています。cat のコンストラクターにプライベート変数「name」を追加し、getName と setName を作成して、各インスタンスのこの値を操作したいと考えています。

Var tom = Cat("tom");
tom.setName("fud");
tom.getName(); //fud

これの代わりに this.getName() を使用する必要があります。proto .getName()、または私は完全に間違っていますか?

4

1 に答える 1

1

JavaScript や Python などの動的言語では、本当にprivate変数は必要ないと思います。私たちが何かを言うときprivate、実際には「自分が何をしているのかわからない場合は、このようなものに触れないでください」と言います. privateですから、物事についてあまり厳しくしないでください。そして、いくつかの変数を本当に保持したい場合はprivate、 を使用することをお勧めしますclosure。いくつかの変数を実際に作成するのは良いアプローチprivateです。例えば:

function Cat(name){
    var _name = name;

    this.getName = function(){
        return _name;
    }

    this.setName = function(name){
        _name = name;
    }
}

このアプローチでは、 から_name変数にアクセスする方法はありませんCat。ただし、関数内にメソッドgetterとメソッドを記述しなければならないという、簡単に理解できる欠点があります。派手な宣言はなくなりました。setterconstructorCat.prototype.someFunc

私の実際の仕事では、javascript を 2 年間使用してい_ました。他の人に伝えるために先頭を使用することを好みます。これはプライベート変数です。私は Python のファンだからです。;-)

于 2012-07-24T12:56:06.407 に答える