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