JavaScript 使用new關鍵字調用函數

来源:https://www.cnblogs.com/shouke/archive/2019/07/07/11148500.html
-Advertisement-
Play Games

使用new關鍵字調用函數 test.js 代碼如下 function Person(name, age, obj) { var o = new Object(); o.name = name; o.age=age; o.obj=obj; o.sayName=function(){ alert(thi ...


使用new關鍵字調用函數

 

test.js

代碼如下

function Person(name, age, obj) {

    var o = new Object();

    o.name = name;

    o.age=age;

    o.obj=obj;

    o.sayName=function(){

       alert(this.name);

    }

    // return o;

    //

    this.sayName=function(){

       alert(name);

    }

 

    console.log(this);

}

 

var friend=new Person("nike", 29, "software engineer");

console.log(friend);

friend.sayName();

 

 

study.html

代碼如下

<!DOCTYPE html>

<html lang="zh-cn">

<head>

<meta charset="en">

</head>

<body>

<script src="test.js"></script>

</body>

</html>

 

 

運行結果

 

 

 

 

 

 

 

修改test.js代碼

function Person(name, age, obj) {

    var o = new Object();

    o.name = name;

    o.age=age;

    o.obj=obj;

    o.sayName=function(){

       alert(this.name);

    }

    console.log(this);

    return o;

}

 

var friend=new Person("nike", 29, "software engineer");

console.log(friend);

friend.sayName();

 

控制台輸出

 

 

 

 

擴展

修改test.js代碼

 

定義變數,存放匿名函數的地址,然後使用該變數來調用函數

var Person = function(name, age, obj) {

    var o = new Object();

    o.name = name;

    o.age=age;

    o.obj=obj;

    o.sayName=function(){

       alert(this.name);

    }

    console.log(this);

    return o;

}

 

var friend=new Person("nike", 29, "software engineer");

console.log(friend);

friend.sayName();

 

控制台輸出

同上一步結果

 

結論

1、new js函數名稱(參數列表),會把對應的函數當做構造函數來使用,如果函數未定義返回值,預設的會返回通過構造函數(被調用函數)構造的對象實例;如果函數定義了返回值,則返回定義的返回值。

 

2、使用new js函數名稱(參數列表)調用函數,函數中的 this 代表了新構造的對象實例。

 

3、可以直接通過定義變數,存放匿名函數的地址,然後使用該變數來調用函數

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 《SQL Server溫故系列》之增刪改查,CRUD,查詢語句,SELECT。顧名思義,SELECT 語句的作用就是從表中查詢數據。查詢語句一次可以從一個或多個表中檢索一個或多個欄位的一行或多行。SELECT 是 SQL 中最常用的一個語句,完整的 SELECT 語法是非常複雜的,本文將先對簡單查詢... ...
  • 利用mapWithState運算元實現有狀態的wordCount,且按照word的第一個字母為key,但是要求輸出的格式為(word,1)這樣形式的結果 ...
  • SQL的函數 函數就是將我們經常使用的代碼封裝起來, 需要的時候直接調用, 提高代碼效率和可維護性. SQL函數一般是在數據上執行, 可以方便地轉換和處理數據. 常用的SQL函數 SQL提供了一些常用的內置函數, 也可以自定義, 內置的函數分為四類: 算數函數 字元串函數 日期函數 轉換函數 算數函 ...
  • 大數據常用技術棧一覽 —— GitHub 地址:https://github.com/heibaiying/BigData Notes ,主要技術棧如下: :black_nib: 前 言 1. "大數據常用技術棧思維導圖" 2. "大數據常用軟體安裝指南" 一、Hadoop 1. "分散式文件存儲系 ...
  • CSS允許根據鏈接的當前狀態對它們進行格式化。鏈接的狀態包括訪問者是否將滑鼠停留在鏈接上,鏈接是否被訪問過 ,等等。可以通過一系列偽類實現這一特性。 a:link 設置從未被激活或指向,當前也沒有被激活或指向的鏈接的外觀。 1 a:link {color: red;} 新的、未訪問的鏈接顯示為紅色。 ...
  • 如果已經在元素中標識了class或id,就可以在選擇器中使用這個標準,從而只對已標識的元素進行格式化。不過推薦使用類選擇器,一會兒我會解釋理由。 要在class選擇器和id選擇器之間作出選擇的時候,建議儘可能地使用class選擇器。這主要是因為我們可以復用class選擇器。有人提議完全不使用id選擇 ...
  • 什麼是 canvas 按例是要介紹一下 canvas 的,在沒有 canvas 之前,我們為了網頁的效果,很多情況下是使用了圖片來實現,不過用圖片就需要載入,而且圖片的體積也是一個問題,所以在 html5 的規範里新增了一個 canvas 元素(畫布) 那麼其實在 html5 中有兩個 2d 圖形技 ...
  • 整理 Kindle 標註、書簽和筆記從未如此簡單! Kindle 標註管理應用 "Kindle Mate" 只支持 Windows,不支持 Mac。標註只是解析 我的剪貼 文本文件,配合 "FileReader" API,寫個 Chrome 擴展解析文本文件就好了。 <! more "Chrome ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...