国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JS中的構造函數詳細解析

2024-05-06 16:02:35
字體:
來源:轉載
供稿:網友
本篇文章主要是對JS中的構造函數進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助

在JavaScript中,任何合法的函數都可以作為對象的構造函數,這既包括系統內置函數,也包括用戶自己定義的函數。一旦函數被作為構造函數執行,它內部的this屬性將引用函數本身。

通常來說,構造函數沒有返回值,它們只是初始化由this指針傳遞進來的對象,并且什么也不返回。如果一個函數有返回值,被返回的對象就成了new表達式的值。從形式上看,一個函數被作為構造函數還是普通函數執行的唯一區別,是否用new運算符。

上面的描述事實上有著更為精確的含義,這要把函數如果有返回值的情況分為函數的返回值是引用類型和值類型兩種情況。

如果一個函數的返回值是引用類型(數組,對象或者函數)的數據,那么這個函數作為構造函數用new運算符執行構造時,運算的結果將被它的返回值取代,這時候,構造函數體內的this值丟失了,取而代之的是被返回的對象。例如:

復制代碼 代碼如下:


function test()
{
   this.a=10;
   return function()
   {
      return 1;
   }
}
alert m=new test();
var n=test();
alert(m);//返回return后面的閉包
alert(n);//返回return 后面的閉包


運行結果m的值和n的值是一樣的,都是test函數返回的閉包,而this引用的對象和this.a=10的賦值結果全部被丟棄。

如果一個函數的返回值是一個值類型,那么這個函數作為構造函數用new運算符執行構造時,它的返回值將被丟棄。new 表達式的結果仍然是this所引用的對象。

復制代碼 代碼如下:


function test()
{
   this.a=10;
    return 1;
}
alert m=new test();
var n=test();
alert(m)//返回【Object】
alert(n)//返回1.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 南乐县| 海安县| 富锦市| 广元市| 江阴市| 乐安县| 巫山县| 确山县| 嘉善县| 靖远县| 诏安县| 白河县| 海盐县| 张家界市| 手机| 奈曼旗| 天祝| 嘉荫县| 江津市| 营口市| 来安县| 双峰县| 厦门市| 吉林市| 崇阳县| 桂林市| 齐河县| 荆门市| 资源县| 嘉兴市| 天气| 天台县| 泸西县| 蛟河市| 镇康县| 库伦旗| 双鸭山市| 柳州市| 永嘉县| 河津市| 鹿泉市|