javascriptとjqueryを使用してオブジェクト指向のソリューションをご希望の場合は、イベントコントローラを設定するオブジェクトをjavascriptで定義できます。
この投稿の後半はhttp://www.codescream.com/?p=18です。ここでは、オブジェクト指向の構造に近いjavascriptでオブジェクトを作成する方法についての履歴書を書きます。
function myObject(constructorParam1, constructorParam2, anotherOne, blabla){
var text = "";
// this event will be set everyTime you run myObject
$(".foo").click(function(){
text = $(this).text(); // copies the text inside the elements ".foo" to a local variable
doSomething();
});
function aPrivateFunction1(){
}
function aPrivateFunction2(){
}
function internalAdd(a,b){
return a+b;
}
var size = 1; // privateVaribale
var name = blabla;
if(name===undefined){
name="No name";
}
aPrivateFunction1(); // run "aPrivateFunction1()
// you can consider all code above as being part of the constructor.
// The variables declared above are private, and the functions are private as well
// bellow are public functions that you can access in an OOP manner
return {
getSize: function(){
return size;
},
setSize: function(newSize){
size = newSize;
},
getName: function(){
return name;
},
setName: function(newName){
name = newname;
},
addAndTurnPositive: function(n1,n2){
var val = internalAdd(n1,n2);
if(val<0){
return val*-1;
}
return val;
}
}
}
// then you can run it like
var anInstance = myObject("aaa",1234,"asdak",123);
anInstance.setSize(1234);
var t = anInstance.addAndTurnPositive(-5,2);
はなぜジャバスクリプトのネイティブオブジェクト指向の機能を使用しない:それは次のようになります
? – Marcin
JavaScriptは、「オブジェクト指向」と言います。あなたはクラスベースの継承について質問しています。 –
すぐに使用できるソリューションはありません。しかし、別の言語http://coffeescript.org/があります。これは、同等のJSに一対一でコンパイルするため、すべてのjsフレームワークでcoffescriptの機能を使用できます。 – Fivell