基于JavaScript自定義構(gòu)造函數(shù)的詳解說明
Javascript并不像Java、C#等語言那樣支持真正的類。但是在js中可以定義偽類。做到這一點(diǎn)的工具就是構(gòu)造函數(shù)和原型對象。首先介紹js中的構(gòu)造函數(shù)。
Javascript中創(chuàng)建對象的語法是在new運(yùn)算符的后面跟著一個函數(shù)的調(diào)用。如
var obj = new Object();
var date = new Date();
運(yùn)算符new首先創(chuàng)建一個新的沒有任何屬性的對象,然后調(diào)用該函數(shù),把新的對象作為this關(guān)鍵字的值傳遞。
var date = new Date()的偽代碼的實(shí)現(xiàn)就是
var obj = {};
var date = Date.call(obj);
構(gòu)造函數(shù)的作用就是初始化一個新創(chuàng)建的對象,并在使用對象前設(shè)置對象的屬性。如果定義自己的構(gòu)造函數(shù),只需要編寫一個為this添加屬性的函數(shù)就可以了。下面的代碼定義了一個構(gòu)造函數(shù):
function Rectangle(w, h)
{
this.width = w;
this.height = h;
}
然后,可以使用new運(yùn)算符調(diào)用這個函數(shù)來創(chuàng)建對象的實(shí)例
var rect = new Rectange(4,8);
構(gòu)造函數(shù)的返回值
Javascript中的構(gòu)造函數(shù)通常沒有返回值。但是,函數(shù)是允許有返回值的。如果一個構(gòu)造函數(shù)有一個返回值,則返回的對象成為new表達(dá)式的值。在此情況下,作為this的對象將會被拋棄。
- 基于JavaScript實(shí)現(xiàn)繼承機(jī)制之構(gòu)造函數(shù)+原型鏈混合方式的使用詳解
- 基于JavaScript實(shí)現(xiàn)繼承機(jī)制之構(gòu)造函數(shù)方法對象冒充的使用詳解
- JavaScript利用構(gòu)造函數(shù)和原型的方式模擬C#類的功能
- JavaScript繼承基礎(chǔ)講解(原型鏈、借用構(gòu)造函數(shù)、混合模式、原型式繼承、寄生式繼承、寄生組合式繼承)
- 深入理解javascript構(gòu)造函數(shù)和原型對象
- 淺談javascript構(gòu)造函數(shù)與實(shí)例化對象
- javascript設(shè)計模式之對象工廠函數(shù)與構(gòu)造函數(shù)詳解
相關(guān)文章
javascript中interval與setTimeOut的區(qū)別示例介紹
這篇文章主要介紹了javascript中interval與setTimeOut的區(qū)別,需要的朋友可以參考下2014-03-03關(guān)于textarea提交的內(nèi)容無法換行的解決辦法
本篇文章小編為大家介紹,關(guān)于textarea提交的內(nèi)容無法換行的解決辦法,有需要的朋友可以參考一下2013-04-04詳解JavaScript中的客戶端消息框架設(shè)計原理
這篇文章主要介紹了詳解JavaScript中的客戶端消息框架設(shè)計原理,包括客戶端和服務(wù)器端的通信等方面的內(nèi)容,需要的朋友可以參考下2015-06-06JavaScript中各種引用類型的常用操作方法小結(jié)
這篇文章主要介紹了JavaScript中各種引用類型的常用操作方法小結(jié),基本上都用實(shí)際代碼進(jìn)行展示,是整理得比較全面的學(xué)習(xí)筆記,需要的朋友可以參考下2016-05-05