国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > CSS > 正文

Class屬性Extends和Implements的區(qū)別示例介紹

2024-07-11 08:28:03
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

復(fù)制代碼
代碼如下:
<span style="font-size:12px;">var Animal = new Class({
initialize: function(age){
this.age = age;
}
});
var Cat = new Class({
Extends: Animal,
initialize: function(name, age){
this.parent(age); // calls initalize method of Animal class
this.name = name;
}
});
var myCat = new Cat('Micia', 20);
console.log(myCat.name); //'Micia'.
console.log(myCat.age); // 20.</span>


復(fù)制代碼
代碼如下:
<span style="font-size:12px;">var Dog = new Class({
Implements: Animal,
setName: function(name){
this.name = name
}
});
var myAnimal = new Dog(20);
console.log(myAnimal.age);
myAnimal.setName('Micia');
console.log(myAnimal.name); // 'Micia'.
</span>

通過(guò)Extends實(shí)現(xiàn)繼承時(shí),需要通過(guò)調(diào)用parent方法來(lái)調(diào)用父元素的initialize方法從而繼承父元素的屬性

而通過(guò)Implements實(shí)現(xiàn)繼承時(shí),直接就可以繼承父元素的屬性,這種方式很適合父類(lèi)不止一個(gè)的情況下

另外額外補(bǔ)充類(lèi)方法Implement和extend,這兩個(gè)方法用于擴(kuò)展已經(jīng)定義了的類(lèi)

復(fù)制代碼
代碼如下:
<span class="kw2"><span style="font-size:12px"></span></span><pre name="code" class="javascript"><span style="font-size:12px;">var Animal = new Class({
initialize: function(age){
this.age = age;
}
});
Animal.implement({
setName: function(name){
this.name = name;
}
});
var myAnimal = new Animal(20);
myAnimal.setName('Micia');
console.log(myAnimal.name); //'Micia'</span></pre><span style="font-size:12px">
<span class="co1"></span></span>

“The main difference between extend and implement is that Implement changes the class's prototype, while Extend creates a copy. This means that if you implement a change into a class all instances of that class will inherit that change instantly, while if you use Extend then all existing instances will remain the same。”

簡(jiǎn)單翻譯下:extend和implement的主要區(qū)別是,implement改變了類(lèi)的prototype屬性,而extend只是新建了一個(gè)副本。這意味著如果你通過(guò)implement對(duì)類(lèi)做了改變,那將改變他的所有實(shí)例,而通過(guò)extend改變類(lèi)的話,不會(huì)改變?cè)诖酥按嬖诘膶?shí)例。

復(fù)制代碼
代碼如下:
var Thingy = new Class({
go: function(){
alert('hi');
}
});
var myClass = new Thingy();
myClass.go(); /* alerts 'hi' */
Thingy.implement({
go: function(){
alert('implemented');
}
});
myClass.go(); /* alerts 'implemented' */
Thingy = Thingy.extend({
go: function(){
alert('extended');
}
});
myClass.go(); /* alerts 'implemented'
because extend only affects
new instances. */
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 北碚区| 贺兰县| 宜川县| 确山县| 闻喜县| 宁晋县| 西平县| 隆尧县| 荆门市| 米脂县| 准格尔旗| 宾川县| 宁夏| 辽阳县| 龙南县| 岗巴县| 乐至县| 连平县| 景洪市| 九寨沟县| 广灵县| 卓资县| 汽车| 响水县| 临清市| 桑植县| 武陟县| 凤庆县| 博湖县| 保山市| 明水县| 盐边县| 满洲里市| 天等县| 平泉县| 富裕县| 溧水县| 枣强县| 连江县| 始兴县| 南丰县|