このリンクに続いて、オブジェクトの名前空間を次のように作成しました。
var Namespace =
{
Register : function(_Name)
{
var chk = false;
var cob = "";
var spc = _Name.split(".");
for(var i = 0; i<spc.length; i++)
{
if(cob!=""){cob+=".";}
cob+=spc[i];
chk = this.Exists(cob);
if(!chk){this.Create(cob);}
}
if(chk){ throw "Namespace: " + _Name + " is already defined."; }
},
Create : function(_Src)
{
eval("window." + _Src + " = new Object();");
},
Exists : function(_Src)
{
eval("var NE = false; try{if(" + _Src + "){NE = true;}else{NE = false;}}catch(err){NE=false;}");
return NE;
}
}
オブジェクトを定義します。
Namespace.Register("System.Classes.HelloWorld");
System.Classes.HelloWorld = function(aa){ return {
Message : "Hello World!",
Hello : function(a,b)
{
alert(this.Message + a + b);
}
};}
このオブジェクトに jQuery NoConflict を渡し、$ 記号を使用できるようにするにはどうすればよいですか?
たとえば、この記事では同様のオブジェクトを作成しますが、上記のコードに適用できない方法で jQuery NoConflict のみを渡します。
このコードは jQuery NoConflict をラップし、複製したいドル記号を許可します。
(function( skillet, $, undefined ) {
//Private Property
var isHot = true;
//Public Property
skillet.ingredient = "Bacon Strips";
//Public Method
skillet.fry = function() {
var oliveOil;
addItem( "\t\n Butter \n\t" );
addItem( oliveOil );
console.log( "Frying " + skillet.ingredient );
};
//Private Method
function addItem( item ) {
if ( item !== undefined ) {
console.log( "Adding " + $.trim(item) );
}
}
}( window.skillet = window.skillet || {}, jQuery ));