prototype学習ノート整理

3693 ワード

var Class = {
create: function() {
return function() {
this.initialize.apply(this, arguments);
}
}
}
クラスを作成するテンプレートまたはプロトタイプとしてclass関数を定義します.
使用方法
 
  

Test Class.create()


<br>var llinzzi= Class.create(); <br>llinzzi.prototype = { <br>initialize:function(){ <br>document.writeln('This is create when initialize'); <br>}, <br>fuv:function(){document.writeln('This is inline method');} <br>} <br>var linChild = new llinzzi(); <br>


<br>//window.onload(linChild); <br>window.onload(linChild.fuv()); <br>;



////
This is create when initialize This is inline method ;
/////
prototypeを採用したClassですcreate();メソッドがオブジェクトを作成する場合、initializeは特殊なメソッドとして、インスタンスを作成するときに実行され、初期化される.
継承
Object.extend = function(destination, source) {
for (var property in source) {
destination[property] = source[property];
}
return destination;
}
このメソッドは、すべてのsource objectのプロパティとメソッドをdestination objectにコピーします.
PrototypeによるObjectクラスの拡張は主に静的関数Objectによって行われる.extend(destination,source)はJavaScriptでの継承を実現した.意味の観点からextend(destination,source)法は,実際にはソースオブジェクトからターゲットオブジェクトへのホログラムコピーしか実現していないため,論理的ではない.ただし、ターゲットオブジェクトはすべてのソースオブジェクトが持つ特性を持っているため、ターゲットオブジェクトがソースオブジェクトを継承(拡張)しているように見えます.
//make a (shallow) copy of obj1
var obj1 = {
method : "post",
args : ""
};
var obj2 = Object.extend({}, obj1);
使用例:
 
  

Test Object.extend


<br>function log(message) { <br>document.writeln(" >>>>>: " +message); <br>} <br>var obj1= { <br>method : "post", <br>args : "" <br>}; <br>var obj2 = Object.extend({}, obj1); <br>log(obj2.method); <br>log(obj1 == obj2); <br>log(obj1.method); <br>log(obj2 == obj1); <br>





//merges in the given options object to the default options object
Object.extend(options, {
args : "data=454",
onComplete : function() { alert("done!"); }
});
options.method//"post"
options.args//"ata=454"
options.onComplete//function() { alert("done!"); }
使用例:
 
  

Test Object.extend


<br>function log(message) { <br>document.writeln(" >>>>>: " +message); <br>} <br>var options= { <br>method : "post", <br>args : "" <br>}; <br>Object.extend(options, { <br>args : "data=454", <br>onComplete : function() { alert("done!");} <br>}); <br>options.method // "post" <br>options.args // "ata=454" <br>options.onComplete // function() { alert("done!"); } <br>log(options.method); <br>log(options.args); <br>log(options.onComplete); <br>