Constructor

Constructor

構造函式(Constructor)在對象創建或者實例化時候被調用的方法。通常使用該方法來初始化數據成員和所需資源。構造器Constructor在js不能被繼承,因此不能重寫Overriding,但可以被重載Overloading 構造函式在C++中如果寫成public屬性那么可以繼承

簡介

構造函式,是一種特殊的方法,主要用來在創建對象時初始化對象,即為對象成員變數賦初始值。總與new運算符一起使用在創建對象的語句中,特別的一個類可以有多個構造函式,可根據其參數個數的不同或參數類型的不同來區分它們,即構造函式的重載。

解析

說明

JavaScript中的constructor

對象的constructor 屬性用於返回創建該對象的函式,也就是我們常說的 構造函式

在JavaScript中,每個具有原型的對象都會自動獲得constructor屬性。除了arguments、Enumerator、Error、Global、Math、RegExp、Regular Expression等一些特殊對象之外,其他所有的JavaScript內置對象都具備constructor屬性。例如:Array、Boolean、Date、Function、Number、Object、String等。所有主流瀏覽器均支持該屬性

瀏覽器支持

所有主要瀏覽器都支持constructor屬性。

c++

構造函式無返回值

語法

object.constructor (js) classname() //c++

返回值

js對象的constructor屬性返回創建該對象的函式的引用。

c++對象無返回值

示例&說明

以下代碼中的[native code],表示這是JavaScript的底層內部代碼實現,無法顯示代碼細節。

// 字元串:String() var str = "張三"; document.writeln(str.constructor); // function String() { [native code] } document.writeln(str.constructor === String); // true // 數組:Array() var arr = [1, 2, 3]; document.writeln(arr.constructor); // function Array() { [native code] } document.writeln(arr.constructor === Array); // true // 數字:Number() var num = 5; document.writeln(num.constructor); // function Number() { [native code] } document.writeln(num.constructor === Number); // true // 自定義對象:Person() function Person(){ this.name = "CodePlayer"; } var p = new Person(); document.writeln(p.constructor); // function Person(){ this.name = "CodePlayer"; } document.writeln(p.constructor === Person); // true // JSON對象:Object() var o = { "name" : "張三"}; document.writeln(o.constructor); // function Object() { [native code] } document.writeln(o.constructor === Object); // true // 自定義函式:Function() function foo(){ alert("CodePlayer"); } document.writeln(foo.constructor); // function Function() { [native code] } document.writeln(foo.constructor === Function); // true // 函式的原型:bar() function bar(){ alert("CodePlayer"); } document.writeln(bar.prototype.constructor); // function bar(){ alert("CodePlayer"); } document.writeln(bar.prototype.constructor === bar); // true

相關詞條

相關搜尋

熱門詞條

聯絡我們