91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Js中構造函數與new命令的學習筆記

發布時間:2020-07-01 18:49:49 來源:網絡 閱讀:990 作者:蝸牛oscersong 欄目:開發技術

一.構造函數

      專門用來生成“對象”的和水泥胡,構造函數是提供一個模板,描述對象的基本結構,一個構造函數可以生成多個對象。

   構造函數的特點:

      (1)函數體內部使用了this關鍵字,代表了所要生成的對象的實例

       (2)生成對象的時候,必須要new命令,來調用函數。

二.New命令

New命令的作用,就是執行構造函數,返回一個實例對象。

如果忘了使用new命令,直接調用構造函數會發生什么事?

這種情況下,構造函數就變成了普通函數,并不會生成實例對象。此時this這時代表全局對象。避免出現不使用new命令、直接調用構造函數的情況。為了保證構造函數必須與new命令一起使用,一個解決辦法是,在構造函數內部使用嚴格模式,即第一行加上use strict

New 命令的原理

  (1)創建一個空對象,作為將要返回的對象實例

   (2)將這個空對象的原型,指向構造函數的prototype屬性

   (3)將這個空對象賦值給函數內部的this關鍵字

   (4)開始執行構造函數內部的代碼

var  a =new A()

     (1)var a = new obiect();

      (2)a._proto_ = A.prototype;

      (3)A.call(a);

      (4)執行構造函數里面的代碼

如果構造函數內部有return語句,而且return后面跟著一個對象,new命令會返回return語句指定的對象;否則,就會不管return語句,返回this對象。

如果對普通函數(內部沒有this關鍵字的函數)使用new命令,則會返回一個空對象。

function getMessage() {

  return 'this is a message';

}

var msg = new getMessage();

console.log(msg); // getMessage {}

console.log(typeof msg);//object

這是因為new命令總是返回一個對象,要么是實例對象,要么是return語句指定的對象。本例中,return語句返回的是字符串,所以new命令就忽略了該語句。

 

參考:http://javascript.ruanyifeng.com/oop/basic.html

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临安市| 囊谦县| 黄骅市| 固原市| 尚志市| 赣州市| 陈巴尔虎旗| 平南县| 阜新市| 石楼县| 镇康县| 平顶山市| 龙江县| 聂拉木县| 调兵山市| 西吉县| 博兴县| 杨浦区| 子洲县| 兖州市| 珲春市| 峨眉山市| 朝阳区| 土默特右旗| 兰州市| 天祝| 云阳县| 海兴县| 沿河| 永德县| 会同县| 华坪县| 鲁山县| 成武县| 报价| 特克斯县| 广西| 榕江县| 荥阳市| 玉龙| 临朐县|