構造函數其實也就是常規函數,但是在命名時首字母要大寫,并且調用構造函數時注意要用new關鍵字實例化,這樣的使用意味著this在開始時創建空,并在結束時返回填充的空,接下來將在文章中為大家詳細介紹。
構造函數生成
this在開始時創建空,并在結束時返回填充的空
function Student(name age){ this.name=name; this.age=age; } var student=new Student("張三","18"); var student1=new Student("李四","19");
在執行函數的過程時Student()時會執行以下步驟:
(1)創建并分配新的空對象this。
(2)函數體執行。通常它會修改this,為其添加新屬性。
(3)this返回值。
同樣,如果我們想要創建更多的student,我們可以調用new Student(),每次方法簡單而且也易于閱讀。
這是構造函數的主要目的:實現可重用的對象創建代碼。
構造函數返回
一般情況下,構造函數沒有return聲明,他們的任務是將所需要的東西寫入this,并自動生成結果。
但是如果有return的話,就會變得很簡單了,比如return使用object調用,則返回的不是this,也就是return對象返回該對象,this則返回所有其他情況
例如,這里通過返回一個對象來return覆蓋this
function Student() { this.name = "張三"; return { name: "李四" }; //return 一個對象 } console.log( new Student().name );
因為return 一個對象,所以返回的是return里面的值而不是this中的值
但是如果我們return的是一個空值,那么返回的就是this值
<script> function Student() { this.name = "張三"; return; //return 一個空對象 } console.log(new Student().name ); </script>
構造函數中的方法
構造函數不僅可以添加屬性還可以添加方法,使構造函數來創建對象更加靈活
<script> function Student(name) { this.name = name; this.friend=function(){ console.log("this my friend:"+this.name); }; } var student=new Student("張三"); student.friend(); </script>
總結:
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com