以下為建構子方法建立類別:
複製程式碼
程式碼🎜>
function className (prop_1, prop_2, prop_3) {
this.prop1 = prop_1;
this.prop2 = prop_2;
this.prop3 = prop_33;
有了上面的類,我們就可以為類別建立實例:
程式碼如下:
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, prop3, prop. > this.prop1 = prop_1;
this.prop2 = prop_2;
this.prop3 = prop_3;
this.func = function new_meth.> 🎜>}
屬性存取域:
在JavaScript裡,物件的屬性預設都是全域的,也就是說,物件內外都可以直接存取該屬性。上面例子裡this.prop1, this.prop2, this.prop3都是全域屬性。
如何定義私有屬性?使用var,在下面的例子裡,price變成了私有屬性!
function Car( listedPrice, colorcolor ) { this.color = color;
this.honk = function() {
>
如果你想存取私有屬性,那麼你可以在物件內新增一個方法去回傳這個私有屬性,因為方法在物件內,所以可以存取物件的私有屬性。在外部呼叫該方法,就可以存取到這個私有屬性了。但在方法裡,就不能再用this.了,像上面的例子,要訪問price,就可以在物件裡加入方法:
複製程式碼
--return price -------------------------------------------------- ------------------------
繼承:
使用下列語法繼承:
複製程式碼
複製程式碼
程式碼如下:
複製程式碼
程式碼如下:
/// 使用構造函數定義一個新的對象
function ElectricCar( listedPrice ) {
this.electricity=100; var price = listedPrice;}
// 使新物件繼承CarElectricCar.prototype = new Car();
// 為新物件加入方法
ElectricCar.prototype.refuel = function(numHours) {
this.electricity = 5*numHours;
};
當我們繼承原型物件後,我們會繼承原型的值和方法。但有的時候,我們的物件值或方法可能會不同,這時候,我們可以透過重寫原型物件的值和方法來改變新物件的內容
複製程式碼
程式碼如下:
function Car(列出的價格) {
var Price =列出的價格;
this.speed = 0;
this.numWheels = 4;
this.numWheels = 4;
this.getPrice = function( ) {
退貨價格; };
}
Car.prototype.accelerate = function() {
this.speed = 10;
};
function ElectricCar(listedPrice) {
var Price =列出的Price;
this.electricity = 100;
}
ElectricCar.prototype = 100;
}
ElectricCar.prototype = new Car()//重寫accelerate方法
ElectricCar.prototype.accelerate = function() {
this.speed = 20;
};
//新增方法decelerateElectricCar.protype. function(secondsStepped) {
this.speed -= 5*secondsStepped;
};
myElectricCar = 新 ElectricCar(500);
myElectricCar.accelerate();
console.log("myElectricCar.accelerate();
console.log("myElectricCar 有速度" myElectricCar.speed);
myElectricCar.decelerate(3);console.log("myElectmyCar.速度);