|
create: function() {
return function() {
this.initialize.apply(this, arguments);
}
}
}
定義了一個(gè)class函數(shù)作為創(chuàng)建類的模版或者說(shuō)是原型
使用方法
復(fù)制代碼 代碼如下:
<html>
<title>Test Class.create()</title>
<head>
<script language="JavaScript" type="text/Javascript" src="prototype.js"></script>
<script>
var llinzzi= Class.create();
llinzzi.prototype = {
initialize:function(){
document.writeln('This is create when initialize');
},
fuv:function(){document.writeln('This is inline method');}
}
var linChild = new llinzzi();
</script>
</head>
<body>
<script>
//window.onload(linChild);
window.onload(linChild.fuv());
</script>;
</body>
</html>
////
This is create when initialize This is inline method ;
/////
就是當(dāng)采用了prototype的Class.create();方法創(chuàng)建對(duì)象的時(shí)候,initialize作為特殊的方法,在創(chuàng)建實(shí)例的時(shí)候被執(zhí)行,用以初始化.
繼承
Object.extend = function(destination, source) {
for (var property in source) {
destination[property] = source[property];
}
return destination;
}
此方法將拷貝所有的source object的屬性和方法到destination object.
Prototype 對(duì)Object類進(jìn)行的擴(kuò)展主要通過(guò)一個(gè)靜態(tài)函數(shù)Object.extend (destination, source)實(shí)現(xiàn)了JavaScript 中的繼承。 從語(yǔ)義的角度, Object.extend (destination, source)方法有些不和邏輯, 因?yàn)樗聦?shí)上僅僅實(shí)現(xiàn)了從源對(duì)象到目標(biāo)對(duì)象的全息拷貝。不過(guò)你也可以這樣認(rèn)為:由于目標(biāo)對(duì)象擁有了所有源對(duì)象所擁有的特性, 所以看上去就像目標(biāo)對(duì)象繼承了源對(duì)象(并加以擴(kuò)展)一樣.
// make a (shallow) copy of obj1
var obj1 = {
method : "post",
args : ""
};
var obj2 = Object.extend({}, obj1);
使用 例子:
復(fù)制代碼 代碼如下:
<html>
<title>Test Object.extend</title>
<head>
<script language="JavaScript" type="text/Javascript" src="prototype.js"></script>
<script>
function log(message) {
document.writeln(" >>>>>: " +message);
}
var obj1= {
method : "post",
args : ""
};
var obj2 = Object.extend({}, obj1);
log(obj2.method);
log(obj1 == obj2);
log(obj1.method);
log(obj2 == obj1);
</script>
</head>
<body>
</body>
</html>
// 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!"); }
使用例子:
復(fù)制代碼 代碼如下:
<html>
<title>Test Object.extend</title>
<head>
<script language="JavaScript" type="text/Javascript" src="prototype.js"></script>
<script>
function log(message) {
document.writeln(" >>>>>: " +message);
}
var options= {
method : "post",
args : ""
};
Object.extend(options, {
args : "data=454",
onComplete : function() { alert("done!");}
});
options.method // "post"
options.args // "ata=454"
options.onComplete // function() { alert("done!"); }
log(options.method);
log(options.args);
log(options.onComplete);
</script>
</head>
<body>
</body>
</html>
JavaScript技術(shù):prototype 學(xué)習(xí)筆記整理,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。