導航:首頁 > 知識科普 > js對象有哪些方法

js對象有哪些方法

發布時間:2024-08-24 13:22:20

1. Js創建對象額幾種方式


第一種模式:工廠方式
說明:
1.在函數中定義對象,並定義對象的各種屬性,,雖然屬性可以為方法,但是建議將屬性為方法的屬性定義到函數之外,這樣可以避免重復創建該方法
2.引用該對象的時候,這里使用的是 var x = Parent()而不是 var x = new Parent();因為後者會可能出現很多問題(前者也成為工廠經典方式,後者稱之為混合工廠方式),不推薦使用new的方式使用該對象
3.在函數的最後返回該對象
4.不推薦使用這種方式創建對象,但應該了解。
缺點:①無法確定對象的類型(因為都是Object)。
②創建的多個對象之間沒有關聯。
第二種模式:構造函數方式
說明:
1.與工廠方式相比,使用構造函數方式創建對象,無需再函數內部重建創建對象,而使用this指代,並而函數無需明確return
2.同工廠模式一樣,雖然屬性的值可以為方法,扔建議將該方法定義在函數之外
3..同樣的,不推薦使用這種方式創建對象,但仍需要了解。
缺點:①多個實例重復創建方法,無法共享。
②多個實例均不是同一個Function的實例。
第三種模式:原型模式

說明:
1.函數中不對屬性進行定義
2.利用prototype屬性對屬性進行定義
3.同樣的,不推薦使用這樣方式創建對象
缺點:①無法傳入參數,不能初始化屬性值。
②如果包含引用類型的值時,改變其中一個實例的值,則會在所有實例中體現。
第四種模式:混合的構造函數,原型方式(推薦)

說明:
1.該模式是指混合搭配使用構造函數方式和原型方式
2.將所有屬性不是方法的屬性定義在函數中(構造函數方式)
將所有屬性值為方法的屬性利用prototype在函數之外定義(原型方式)
3.推薦使用這樣方式創建對象
優點:構造函數共享實例屬性,原型共享方法和想要共享的屬性。可傳遞參數,初始化屬性值。
第五種模式:動態原型方式

說明:
1.動態原型方式可以理解為混合構造函數,原型方式的一個特例
2.該模式中,屬性為方法的屬性直接在函數中進行了定義,但是因為
從而保證創建該對象的實例時,屬性的方法不會被重復創建
3.推薦使用這種模式。
附:JS中多種方式創建對象詳解

2. Js中什麼是對象,什麼是方法

什麼是對象


JavaScript 中的所有事物都是對象,如:字元串、數值、數組、函數等,每個對象帶有屬性和方法。


對象的屬性:反映該對象某些特定的性質的,如:字元串的長度、圖像的長寬等;


對象的方法:能夠在對象上執行的動作。例如,表單的「提交」(Submit),時間的「獲取」(getYear)等;

JavaScript 提供多個內建對象,比如 String、Date、Array 等等,使用對象前先定義,如下使用數組對象:

varobjectName=newArray();//使用new關鍵字定義對象
或者
varobjectName=[];

訪問對象屬性的語法:

objectName.propertyName

如使用 Array 對象的 length 屬性來獲得數組的長度:

varmyarray=newArray(6);//定義數組對象
varmyl=myarray.length;//訪問數組長度length屬性

以上代碼執行後,myl的值將是:6

訪問對象的方法:

objectName.methodName()

如使用string 對象的 toUpperCase() 方法來將文本轉換為大寫:

varmystr="Helloworld!";//創建一個字元串
varrequest=mystr.toUpperCase();//使用字元串對象方法

以上代碼執行後,request的值是:HELLO WORLD!


3. 對JS關於對象創建的幾種方式總結


最近一直在看JS高級程序設計這本書,有空來梳理一下幾種創建對象的方式。話不多說,直接步入正題。
第一種:Object構造函數創建
Person = Object();這行代碼創建了Object引用類型的一個新實例,然後把實例保存在變數Person中。
第二種:使用對象字面量表示法
Person ='Nike'29對象字面量是對象定義的一種簡寫形式,目的在於簡化創建包含大量屬性的對象的過程。也就是說,第一種和第二種方式創建對象的方法其實都是一樣的,只是寫法上的區別不同
在介紹第三種的創建方法之前,我們應該要明白為什麼還要用別的方法來創建對象,也就是第一種,第二種方法的缺點所在:它們都是用了同一個介面創建很多對象,會產生大量的重復代碼,就是如果你有100個對象,那你要輸入100次很多相同的代碼。那我們有什麼方法來避免過多的重復代碼呢,就是把創建對象的過程封裝在函數體內,通過函數的調用直接生成對象。
第三種:使用工廠模式創建對象
function createPerson(name,age,job){
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.sayName = function(){
alert(this.name);
}; return o;
}var person1 = createPerson('Nike',29,'teacher');var person2 = createPerson('Arvin',20,'student');在使用工廠模式創建對象的時候,我們都可以注意到,在createPerson函數中,返回的是一個對象。那麼我們就無法判斷返回的對象究竟是一個什麼樣的類型。於是就出現了第四種創建對象的模式。
第四種:使用構造函數創建對象
.name =.age =.job =.sayName = person1 = Person('Nike',29,'teacher');
var person2 = new Person('Arvin',20,'student');對比工廠模式,我們可以發現以下區別:
1.沒有顯示地創建對象
2.直接將屬性和方法賦給了this對象
3.沒有return語句
4.終於可以識別的對象的類型。對於檢測對象類型,我們應該使用instanceof操作符,我們來進行自主檢測:
alert(person1 instanceof Object);//ture
alert(person1 instanceof Person);//ture
alert(person2 instanceof Object);//ture
alert(person2 instanceof Object);//ture同時我們也應該明白,按照慣例,構造函數始終要應該以一個大寫字母開頭,而非構造函數則應該以一個小寫字母開頭。
那麼構造函數確實挺好用的,但是它也有它的缺點:
就是每個方法都要在每個實例上重新創建一遍,方法指的就是我們在對象裡面定義的函數。如果方法的數量很多,就會佔用很多不必要的內存。於是出現了第五種創建對象的
方法
第五種:原型創建對象模式
function Person(){}
Person.prototype.name = 'Nike';
Person.prototype.age = 20;
Person.prototype.jbo = 'teacher';
Person.prototype.sayName = function(){
alert(this.name);
};var person1 = new Person();
person1.sayName();使用原型創建對象的方式,可以讓所有對象實例共享它所包含的屬性和方法。
如果是使用原型創建對象模式,請看下面代碼:
function Person(){}
Person.prototype.name = 'Nike';
Person.prototype.age = 20;
Person.prototype.jbo = 'teacher';
Person.prototype.sayName = function(){
alert(this.name);
};
var person1 = new Person();
var person2 = new Person();
person1.name ='Greg';
alert(person1.name); //'Greg' --來自實例
alert(person2.name); //'Nike' --來自原型當為對象實例添加一個屬性時,這個屬性就會屏蔽原型對象中保存的同名屬性。
這時候我們就可以使用構造函數模式與原型模式結合的方式,構造函數模式用於定義實例屬性,而原型模式用於定義方法和共享的屬性
第八種:組合使用構造函數模式和原型模式
function Person(name,age,job){
this.name =name;
this.age = age;
this.job = job;
}
Person.prototype = {
constructor:Person,
sayName: function(){
alert(this.name);
};
}var person1 = new Person('Nike',20,'teacher');

閱讀全文

與js對象有哪些方法相關的資料

熱點內容
今年遼寧漲工資計算方法 瀏覽:158
卧式健身車的使用方法 瀏覽:425
家庭快速退燒方法 瀏覽:612
小數除法計算方法格式 瀏覽:921
樓面裝飾設計有哪些構圖方法 瀏覽:936
綠化地面塌陷解決方法 瀏覽:387
開放性骨折的正確處理方法 瀏覽:7
新生兒臍帶包使用方法 瀏覽:918
什麼是最常用的可靠的止血方法 瀏覽:970
香油的正確擺放方法 瀏覽:440
真菌總數檢測方法國標 瀏覽:868
斜率產品分析方法 瀏覽:58
設備同時率計算方法 瀏覽:901
圓的內切圓角的計算方法 瀏覽:729
tst面膜乳使用方法 瀏覽:58
類比遷移屬於教學方法嗎 瀏覽:307
喝涼水肚子疼怎麼辦簡單的方法 瀏覽:307
爬繩快的正確方法視頻 瀏覽:948
西方最早的啟發教學方法是 瀏覽:561
格力空調5匹e1故障解決方法 瀏覽:243