<option id="mwy0y"><strong id="mwy0y"></strong></option>
  • <ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <ul id="mwy0y"></ul>
  • <del id="mwy0y"><dfn id="mwy0y"></dfn></del><ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <abbr id="mwy0y"></abbr>

    千鋒教育-做有情懷、有良心、有品質的職業教育機構

    400-811-9990
    手機站
    千鋒教育

    千鋒學習站 | 隨時隨地免費學

    千鋒教育

    掃一掃進入千鋒手機站

    領取全套視頻
    千鋒教育

    關注千鋒學習站小程序
    隨時隨地免費學習課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當前位置:長沙千鋒IT培訓  >  技術要點  >  長沙Web前端培訓JavaScript教程:構造函數內容講解

    長沙Web前端培訓JavaScript教程:構造函數內容講解

    來源:千鋒教育
    發布人:千鋒長沙
    時間: 2021-05-19 18:25:21

           JavaScript 是世界上最流行的腳本語言。 JavaScript 是屬于 web 的語言,它適用于 PC、筆記本電腦、平板電腦和移動電話。 JavaScript 被設計為向 HTML 頁面增加交互性。 許多 HTML 開發者都不是程序員,但是 JavaScript 卻擁有非常簡單的語法。幾乎每個人都有能力將小的 JavaScript 片段添加到網頁中。下面給大家分享下長沙Web前端培訓JavaScript教程:構造函數內容講解 。

    src=http___p.ananas.chaoxing.com_star3_origin_22fe148a65411cae473082f02428a2a9.jpg&refer=http___p.ananas.chaoxing

    面向對象

    首先,我們要明確,面向對象不是語法,是一個思想,是一種 編程模式。

    面向: 面(臉),向(朝著)

    面向過程: 臉朝著過程 =》 關注著過程的編程模式

    面向對象: 臉朝著對象 =》 關注著對象的編程模式

    實現一個效果

    在面向過程的時候,我們要關注每一個元素,每一個元素之間的關系,順序,。。。

    在面向過程的時候,我們要關注的就是找到一個對象來幫我做這個事情,我等待結果

    例子 : 我要吃面條

    面向過程

    用多少面粉

    用多少水

    怎么和面

    怎么切面條

    做開水

    煮面

    吃面

    面向對象

    找到一個面館

    叫一碗面

    等著吃

    面向對象就是對面向過程的封裝

    我們以前的編程思想是,每一個功能,都按照需求一步一步的逐步完成

    我們以后的編程思想是,每一個功能,都先創造一個 面館,這個 面館 能幫我們作出一個 面(完成這個功能的對象),然后用 面館 創造出一個 面,我們只要等到結果就好了

    插個小消息,也方便想學習入行成為程序員的同學,在文章下方留言即可試聽課程外加領取千鋒HTML5、UI交互設計、PHP、Java+云數據、大數據開發、VR/AR/Unity游戲開發、Python人工智能、Linux云計算、全棧軟件測試、網絡安全等全部的視頻學習教程。

    創建對象的方式

    因為面向對象就是一個找到對象的過程

    所以我們先要了解如何創建一個對象

    調用系統內置的構造函數創建對象

    js 給我們內置了一個 Object 構造函數

    這個構造函數就是用來創造對象的

    當 構造函數 和 new 關鍵字連用的時候,就可以為我們創造出一個對象

    因為 js 是一個動態的語言,那么我們就可以動態的向對象中添加成員了

    // 就能得到一個空對象

    var o1 = new Object()

    // 正常操作對象

    o1.name = 'Jack'

    o1.age = 18

    o1.gender = '男'

    字面量的方式創建一個對象

    直接使用字面量的形式,也就是直接寫 {}

    可以在寫的時候就添加好成員,也可以動態的添加

    // 字面量方式創建對象

    var o1 = {

    name: 'Jack',

    age: 18,

    gender: '男'

    }

    // 再來一個

    var o2 = {}

    o2.name = 'Rose'

    o2.age = 20

    o2.gender = '女'

    使用工廠函數的方式創建對象

    先書寫一個工廠函數

    這個工廠函數里面可以創造出一個對象,并且給對象添加一些屬性,還能把對象返回

    使用這個工廠函數創造對象

    // 1. 先創建一個工廠函數

    function createObj() {

    // 手動創建一個對象

    var obj = new Object()

    // 手動的向對象中添加成員

    obj.name = 'Jack'

    obj.age = 18

    obj.gender = '男'

    // 手動返回一個對象

    return obj

    }

    // 2. 使用這個工廠函數創建對象

    var o1 = createObj()

    var o2 = createObj()

    使用自定義構造函數創建對象

    工廠函數需要經歷三個步驟

    手動創建對象

    手動添加成員

    手動返回對象

    構造函數會比工廠函數簡單一下

    自動創建對象

    手動添加成員

    自動返回對象

    先書寫一個構造函數

    在構造函數內向對象添加一些成員

    使用這個構造函數創造一個對象(和 new 連用)

    構造函數可以創建對象,并且創建一個帶有屬性和方法的對象

    面向對象就是要想辦法找到一個有屬性和方法的對象

    面向對象就是我們自己制造 構造函數 的過程

    // 1. 先創造一個構造函數

    function Person(name, gender) {

    this.age = 18

    this.name = name

    this.gender = gender

    }

    // 2. 使用構造函數創建對象

    var p1 = new Person('Jack', 'man')

    var p2 = new Person('Rose', 'woman')

    構造函數詳解

    我們了解了對象的創建方式

    我們的面向對象就是要么能直接得到一個對象

    要么就弄出一個能創造對象的東西,我們自己創造對象

    我們的構造函數就能創造對象,所以接下來我們就詳細聊聊 構造函數

    構造函數的基本使用

    和普通函數一樣,只不過 調用的時候要和 new 連用,不然就是一個普通函數調用

    function Person() {}

    var o1 = new Person() // 能得到一個空對象

    var o2 = Person() // 什么也得不到,這個就是普通函數調用

    注意: 不寫 new 的時候就是普通函數調用,沒有創造對象的能力

    首字母大寫

    function person() {}

    var o1 = new person() // 能得到一個對象

    function Person() {}

    var o2 = new Person() // 能得到一個對象

    注意: 首字母不大寫,只要和 new 連用,就有創造對象的能力

    當調用的時候如果不需要傳遞參數可以不寫 (),建議都寫上

    function Person() {}

    var o1 = new Person() // 能得到一個空對象

    var o2 = new Person // 能得到一個空對象

    注意: 如果不需要傳遞參數,那么可以不寫 (),如果傳遞參數就必須寫

    構造函數內部的 this,由于和 new 連用的關系,是指向當前實例對象的

    function Person() {

    console.log(this)

    }

    var o1 = new Person() // 本次調用的時候,this => o1

    var o2 = new Person() // 本次調用的時候,this => o2

    注意: 每次 new 的時候,函數內部的 this 都是指向當前這次的實例化對象

    因為構造函數會自動返回一個對象,所以構造函數內部不要寫 return

    你如果 return 一個基本數據類型,那么寫了沒有意義

    如果你 return 一個引用數據類型,那么構造函數本身的意義就沒有了

    使用構造函數創建一個對象

    我們在使用構造函數的時候,可以通過一些代碼和內容來向當前的對象中添加一些內容

    function Person() {

    this.name = 'Jack'

    this.age = 18

    }

    var o1 = new Person()

    var o2 = new Person()

    我們得到的兩個對象里面都有自己的成員 name 和 age

    我們在寫構造函數的時候,是不是也可以添加一些方法進去呢?

    function Person() {

    this.name = 'Jack'

    this.age = 18

    this.sayHi = function () {

    console.log('hello constructor')

    }

    }

    var o1 = new Person()

    var o2 = new Person()

    顯然是可以的,我們的到的兩個對象中都有 sayHi 這個函數

    也都可以正常調用

    但是這樣好不好呢?缺點在哪里?

    function Person() {

    this.name = 'Jack'

    this.age = 18

    this.sayHi = function () {

    console.log('hello constructor')

    }

    }

    // 第一次 new 的時候, Person 這個函數要執行一遍

    // 執行一遍就會創造一個新的函數,并且把函數地址賦值給 this.sayHi

    var o1 = new Person()

    // 第二次 new 的時候, Person 這個函數要執行一遍

    // 執行一遍就會創造一個新的函數,并且把函數地址賦值給 this.sayHi

    var o2 = new Person()

    這樣的話,那么我們兩個對象內的 sayHi 函數就是一個代碼一摸一樣,功能一摸一樣

    但是是兩個空間函數,占用兩個內存空間

    也就是說 o1.sayHi 是一個地址,o2.sayHi 是一個地址

    所以我們執行 console.log(o1 === o2.sayHi) 的到的結果是 false

    缺點: 一摸一樣的函數出現了兩次,占用了兩個空間地址

    聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。

    猜你喜歡LIKE

    最新文章NEW

    相關推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網友熱搜 更多>>