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

首頁 > 語言 > JavaScript > 正文

基于JavaScript 類的使用詳解

2024-05-06 15:48:05
字體:
供稿:網(wǎng)友
JavaScript里的Class(類),其實是通過Function來實現(xiàn)的。我們通過字面量或者構(gòu)造函數(shù)來創(chuàng)建對象時,其實都只是給特定的一個對象賦屬性和值。如果我們有多個對象,他們的屬性都一樣只是值不同,那就會寫很多重復的語句,這時候類就很好用了

以下為構(gòu)造函數(shù)方法創(chuàng)建類:

復制代碼 代碼如下:


function className (prop_1, prop_2, prop_3) {
this.prop1 = prop_1;
this.prop2 = prop_2;
this.prop3 = prop_3;}


有了上面的類,我們就可以為類創(chuàng)建實例:

復制代碼 代碼如下:


var obj_1 = new className(v1, v2, v3)
var obj_2 = new className(v1, v2, v3)


我們也可以給類添加方法(method),其實就是Function里的Function。

復制代碼 代碼如下:


function className (prop_1, prop_2, prop_3) {
this.prop1 = prop_1;
this.prop2 = prop_2;
this.prop3 = prop_3;
this.func = function new_meth (property) {
//coding here
}
}


屬性訪問域:

在JavaScript里,對象的屬性默認都是全局的,也就是說,對象內(nèi)外都可以直接訪問該屬性。上面例子里this.prop1, this.prop2, this.prop3都是全局屬性。

如何定義私有屬性呢?使用var,下面的例子里,price就變成了私有屬性!

復制代碼 代碼如下:


function Car( listedPrice, color ) {
var price = listedPrice;
this.color = color;
this.honk = function() {
console.log("BEEP BEEP!!");
};
}


如果你想訪問私有屬性,那么你可以在對象內(nèi)添加一個方法去返回這個私有屬性,因為方法在對象內(nèi),所以可以訪問對象的私有屬性。在外部調(diào)用該方法,就可以訪問到這個私有屬性了。但是在方法里,就不能再用this.了,像上面的例子,要訪問price,就可以在對象里添加方法:

復制代碼 代碼如下:


this.getPrice = function() {
//return price here!
return price;
--------------------------------------------------------------------------------


繼承:

使用以下語法繼承:

復制代碼 代碼如下:


ElectricCar.prototype = new Car();


使用instanceOf檢查對象是否某對象的繼承,返回true或false。

復制代碼 代碼如下:


myElectricCar instanceof Car


給繼承后的對象添加方法:

復制代碼 代碼如下:


// 使用構(gòu)造函數(shù)定義一個新的對象
function ElectricCar( listedPrice ) {
this.electricity=100;
var price = listedPrice;
}

// 使新對象繼承Car
ElectricCar.prototype = new Car();

// 為新對象添加方法
ElectricCar.prototype.refuel = function(numHours) {
this.electricity =+ 5*numHours;
};


重寫原型對象的值或方法:
當我們繼承原型對象后,我們會繼承原型的值和方法。但有的時候,我們的對象值或方法可能會不同,這時候,我們可以通過重寫原型對象的值和方法來改變新對象的內(nèi)容

復制代碼 代碼如下:


function Car( listedPrice ) {
var price = listedPrice;
this.speed = 0;
this.numWheels = 4;

this.getPrice = function() {
return price;
};
}

Car.prototype.accelerate = function() {
this.speed += 10;
};

function ElectricCar( listedPrice ) {
var price = listedPrice;
this.electricity = 100;
}
ElectricCar.prototype = new Car();

// 重寫accelerate方法
ElectricCar.prototype.accelerate = function() {
this.speed += 20;
};
// 添加新方法decelerateElectricCar.prototype.decelerate = function(secondsStepped) {
this.speed -= 5*secondsStepped;
};

myElectricCar = new ElectricCar(500);

myElectricCar.accelerate();
console.log("myElectricCar has speed " + myElectricCar.speed);
myElectricCar.decelerate(3);
console.log("myElectricCar has speed " + myElectricCar.speed);


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 苍梧县| 甘德县| 杭州市| 凯里市| 长春市| 灌南县| 玉田县| 漠河县| 桃江县| 綦江县| 平山县| 南乐县| 龙里县| 灵石县| 海阳市| 东至县| 镇远县| 和政县| 凌源市| 连平县| 琼中| 佛教| 辽中县| 汤阴县| 惠州市| 济宁市| 营山县| 华坪县| 渭南市| 肥西县| 阜康市| 甘德县| 凉山| 乃东县| 临猗县| 安福县| 中西区| 甘孜县| 定兴县| 呈贡县| 祁连县|