かつて、JavaScriptの世界では、すべての方法が公開されていました。
次のようにコードコードをコピーします。
var person = function(name、sex){
this.name = name;
this.sex = sex;
var _privatevariable = "";
//コンストラクターで定義されている方法はプライベートメソッドです
function privatemedhod(){
_privatevariable = "private value";
alert( "プライベートメソッドは、プライベートメンバー値:" + _privatevariable)と呼ばれます。
}
privatemethod();
}
person.prototype.sayhello = function(){
alert( "name:" + this.name + "、gender:" + this.sex);
}
var p = new person( "yang guo bodhi tree"、 "Male");
p.sayhello();
//p.privatemethod/); //エラーはここでは報告できません
アラート(p._privatevariable); // show:未定義
注:クラスのコンストラクターで定義されている関数は、コンストラクターでVARを使用して宣言された変数も同等です。 (ただし、C#などの強力なタイプのプライベートメンバーの概念にはまだ違いがあります。
同様に、同様のセットのパッケージを実現することもできます。
次のようにコードコードをコピーします。
var person = function(){
var salary = 0.0;
this.setsalary = function(value){
給与=値;
}
this.getSalary = function(){
返品給与;
}
}
var p = new person();
P.Setsalarly(1000);
alert(p.getsalar());
アラート(p.salary);
注:jsの「可変スコープ」、「コンテキスト(this)」、「閉鎖」、「プロトタイプチェーン」は確かに理解するためにいくつかの努力をする価値があります。私の世代の流れ)、私はそれが新しいレベルになると信じています。