首頁  >  文章  >  電腦教學  >  JavaScript如何定義類似hide的方法,可透過點擊調用

JavaScript如何定義類似hide的方法,可透過點擊調用

PHPz
PHPz轉載
2024-01-13 12:12:05923瀏覽

javascript怎麼定義那種點出來的方法類似hide呼叫的時

原形方法吧。 。 。 。 prototype

例如給數組Array定義一個函數

Array.prototype.in_array = function ($string) { for (var i = 0; i

{

for (i = 0; i

return true;

}

}

return false;

}

呼叫時候就可以

var a = new Array('a');

a.in_array('a');

查看是否存在

在例如字串

String.prototype.trim = function()

{

return this.replace(/^\s*|\s*$/g, '');

}

呼叫時候就可以

var a = ' abcdefg ';

a.trime();

這樣就去掉兩邊的空格了

自訂函數也是一樣,首先建立一個函數,並使用prototype在其中新增方法。

JavaScript定義物件的方法有哪些

Javascript物件定義的幾種方式

一. 工廠方式:先建立對象,然後再為對像新增方法和屬性。封閉之後,避免使用new操作符建立物件。儘管這種方法有一些弊端,例如在工廠函數內部定義方法時,每次呼叫時都會建立新的函數。

function factory(name, person, address, time){

var tmp=new Object;

tmp.name=name;

tmp.person=person;

tmp.address=address;

tmp.workTime=function(){

alert("我們開始工作的時間是" time);

}

return tmp;

}

var factory1 = factory("drugs", 100, "Huashan Rd", 10);

var factory2 = factory("TCMdrugs", 100, "hongqiao Rd", 11);

factory1.workTime();

factory2.workTime();//在這裡,factory1和factory2有不同的方法

雖然對這種問題可以用下面的方式改進,但是缺乏很好的封裝性

function factory(name, person, address, time){

var tmp=new Object;

tmp.name=name;

tmp.person=person;

tmp.address=address;

tmp.workTime=workTime();

return tmp;

}

function workTime(){

alert("我們開始工作時間是" this.time);

}

二、建構函數方式是指在建構函式內部使用this關鍵字來建立對象,並且在使用時需要透過new操作符來實例化。然而,這種方式存在和工廠方式相同的問題,即每次調用構造函數都會創建一個新的函數對象,導致函數的重複創建。

function construct(name, person, address, time) { // 在這裡寫你的程式碼邏輯 }

this.name=name;

this.person=person;

this.address=address;

this.workTime=function(){

alert("我們開始工作時間是" this.time);

};

}

三.原型方式:利用prototype屬性來實現屬性和方法,可以透過instanceof 檢查物件類型,解決了重複建立函數的問題。不過要注意的是,不能透過傳遞參數來初始化屬性。

function Car(){

}

Car.prototype.color = "red";

Car.prototype.doors = 4;

Car.prototype.mpg = 23;

Car.prototype.showColor = function() {

alert(this.color);

};

var car1 = new Car();

var car2 = new Car();

但是如果遇到下面的情況,又出問題了

Car.prototype.drivers = ["mike", "sue"];

car1.drivers.push("matt");

alert(car1.drivers); //輸出「mike,sue,matt」

alert(car2.drivers); // 輸出 "mike, sue, matt"

drivers是指向Array物件的指針,Car的兩個實例都引用了同一個數組。

四.混合的建構子/原型方式:針對原型方式的解決方案

function Car(sColor, iDoors, iMpg) { this.color = sColor; this.doors = iDoors; this.mpg = iMpg; }

this.color = sColor;

this.doors = iDoors;

this.mpg = iMpg;

this.drivers = ["mike", "sue"];

#}

Car.prototype.showColor = function () { // 你的程式碼 }

alert(this.color);

};

var car1 = new Car("red", 4, 23);

var car2 = new Car("blue", 3, 25);

car1.drivers.push("matt");

alert(car1.drivers);

alert(car2.drivers);

五. 動態原型方式:這是一種非常推薦的方式,它避免了前面幾種方式中出現的問題,並且提供了更友善的程式設計風格。

function Car(sColor, iDoors, iMpg) { this.color = sColor; this.doors = iDoors; this.mpg = iMpg; }

this.color = sColor;

this.doors = iDoors;

this.mpg = iMpg;

this.drivers = ["mike", "sue"];

如果(typeof Car.initialized == "undefined"){

Car.prototype.showColor = function () { // 你的程式碼 }

alert(this.color);

};

Car.initialized = true;

}

}

var car1 = new Car("red", 4, 23);

var car2 = new Car("blue", 3, 25);

car1.drivers.push("matt");

alert(car1.drivers);

alert(car2.drivers);

六.混合工廠方式:和工廠方式有些相似,但是使用new關鍵字進行實例化。雖然與工廠方式有相同的弊端,但不建議使用。

以上是JavaScript如何定義類似hide的方法,可透過點擊調用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:docexcel.net。如有侵權,請聯絡admin@php.cn刪除