国产探花免费观看_亚洲丰满少妇自慰呻吟_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.

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

圖片精選

主站蜘蛛池模板: 昌宁县| 灵寿县| 静宁县| 博野县| 土默特左旗| 鄂州市| 揭西县| 枣强县| 三台县| 封丘县| 思茅市| 岳西县| 南京市| 河南省| 鄂州市| 五寨县| 丰原市| 曲阜市| 苍南县| 林西县| 隆尧县| 景德镇市| 怀来县| 洛阳市| 育儿| 南澳县| 平利县| 维西| 鞍山市| 五原县| 通渭县| 永寿县| 双牌县| 辽阳市| 重庆市| 阿坝| 巴东县| 盐源县| 牡丹江市| 芒康县| 荔波县|