基于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學(xué)習(xí)筆記4 Eval函數(shù)
在初學(xué)JS的時候就知道這個函數(shù),卻一直沒有了解過他的用途,也一直都是睜一只眼閉一只眼,這次來深入地了解一下這個函數(shù)的作用。2010-01-01
JavaScript顯式數(shù)據(jù)類型轉(zhuǎn)換詳解
這篇文章主要介紹了JavaScript顯式數(shù)據(jù)類型轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
JavaScript高級程序設(shè)計(第3版)學(xué)習(xí)筆記 概述
在JavaScript面世之初,沒有人會想到它會被應(yīng)用的如此廣泛,也遠(yuǎn)比一般人想象中的要復(fù)雜強(qiáng)大的多,在我自己學(xué)習(xí)的過程中,曾經(jīng)有過多次震撼2012-10-10

