JavaScriptクラス/オブジェクトの作成方法の概要と例

2514 ワード

JSでは、オブジェクトの作成(Create Object)は完全に私たちがよく言うクラスオブジェクトの作成ではありません.JSのオブジェクトは複合タイプを強調しています.JSではオブジェクトの作成とオブジェクトへのアクセスが極めて柔軟です.
JSオブジェクトは複合タイプで、変数名で保存してアクセスすることができます.考え方を変えて、オブジェクトは無秩序な属性の集合で、集合の各項目は名前と値で構成されています(よく聞くHASHテーブル、辞書、健/値のペアに似ていますか?)値タイプはnumber、stringなどの組み込みタイプ、オブジェクトのいずれかです.
一、一対の括弧で囲む
 
  
var emptyObj = {};
var myObj =
{
'id': 1, // ,
'name': 'myName'
};
//var m = new myObj(); //

オブジェクトがvarで宣言されていることに気づいたかどうか分かりませんが、上のコードのように、単純にオブジェクトを宣言しているだけで、コピーが1部しかありません.クラスオブジェクトをインスタンス化するようにnew操作を採用することはできません.上のコードの注釈部分のように.これにより、オブジェクトの再利用が大幅に制限されます.作成したオブジェクトがコピーを1部必要としない限り、他の方法でオブジェクトを作成することを考慮します.
オブジェクトのプロパティとメソッドにアクセスする方法について説明します.
 
  
var myObj =
{
'id': 1,
'fun': function() {
document.writeln(this.id + '-' + this.name);// " . "
},
'name': 'myObj',
'fun1': function() {
document.writeln(this['id'] + '+' + this['name']);//
}
};
myObj.fun();
myObj.fun1();
//
// 1-myObj 1+myObj

二、functionキーワードでclassをシミュレートfunctionでthisで現在のオブジェクトを参照し、属性の付与によって属性を宣言する.varで変数を宣言すると、この変数はローカル変数であり、クラス定義でのみ呼び出すことができます.
 
  
function myClass() {
this.id = 5;
this.name = 'myclass';
this.getName = function() {
return this.name;
}
}
var my = new myClass();
alert(my.id);
alert(my.getName());
//
// 5
// myclass

三、関数体にオブジェクトを作成し、その属性を宣言してから戻る
関数体でオブジェクトを作成するには、最初のポイントの方法を使用するか、new Object()を先に使用します.各プロパティに値を割り当てます.
しかし、このようにして作成されたオブジェクトはVS 2008 SP 1にはインテリジェントなヒントがありません.
 
  
function myClass() {
var obj =
{
'id':2,
'name':'myclass'
};
return obj;
}
function _myClass() {
var obj = new Object();
obj.id = 1;
obj.name = '_myclass';
return obj;
}
var my = new myClass();
var _my = new _myClass();
alert(my.id);
alert(my.name);
alert(_my.id);
alert(_my.name);
//
// 2
// myclass
// 1
// _myclass