JavaScriptの中で対象に向かうこと

1669 ワード

JavaScriptは自分が弱いので、本を探して補足しました.本の内容は多いですが、jsの中のものが多いということを十分に説明しました.私達の位置付けは先端ではありませんが、jsのこの発展は20年近く経っていますが、依然として非常に人気のある技術を知っておいたほうがいいです.
        二年前、JavaScriptの闭锁に関するブログを书いたことがありますので、闭锁という言叶がとても印象的です.この本を読んでいるとき、また闭锁を见ました.
        ご存知のように、JavaScriptには類の概念がなく、プライベート、公有のメンバー変数という概念がありません.しかし、これらは確かに存在しています.
        次の例を見てください
function MyClass(){
    this.name='  ';
    var age=2;
}

var test=new MyClass();
alert(test.name); //  
alert(test.age)     //undefined
test.name='  ';
        Googleブラウザでデバッグしている間、ageの値はなかなか見えませんでしたが、確かに存在します.test.ageを呼び出したときには、エラーはありませんが、ageの値は取れません.nameにとってはthisを使っていますが、それはpublicの変数に相当します.varで声明する変数はprvateで、class(Java中)これに関しては、functionしかないです.
        prvateの変数にはどうやってアクセスすればいいですか?
        Javaではprvateの変数について、私たちがアクセスしたいのは、get、set方法を提供して操作しています.ここでも同じです.次のコードを見てください
        
function MyClass(){
    this.name='  ';
    var age=2;
    this.getAge=function(){
        alert(age);
    }
    this.setAge=function(value){
        if(value>0 && value < 150)
            age=value;
    }
}

var test=new MyClass();
test.getAge()     //2
test.setAge(11);
test.getAge();    //11
        ここでは、Javaクラスのpublic、prvate属性及び私有属性の操作を完全にシミュレーションしました.
        プライベート属性操作の方法には、JavaScriptに特有の呼び方があります.
        Java類の声明でJavaScriptを理解していますが、急に分かりにくいと思っていたクローズドが発見されました.なぜこのような概念が定義されているのかよく分かりません.
        これまでjavascript属性のget、set方法は生成されていませんが、extは、javascriptオブジェクトの属性を直接にget、set方法を持つようにするためのツールを提供しています.
        以前のjavascriptの使用過程において、私達はプロセス指向方式を採用しています.これはjsコードに対する多重度が低いことを暴露しました.jsの対象に向かって、位置は必ず行います.