国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JavaScript筆記】面對(duì)對(duì)象與構(gòu)造函數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了【JavaScript筆記】面對(duì)對(duì)象與構(gòu)造函數(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

筆記作用

  • 了解面向?qū)ο缶幊讨械囊话愀拍?/p>

  • 能夠基于構(gòu)造函數(shù)創(chuàng)建對(duì)象

  • 理解 JavaScript 中一切皆對(duì)象的語(yǔ)言特征

  • 理解引用對(duì)象類(lèi)型值存儲(chǔ)的的特征

  • 掌握包裝類(lèi)型對(duì)象常見(jiàn)方法的使用

一、深入對(duì)象

了解面向?qū)ο蟮幕A(chǔ)概念,能夠利用構(gòu)造函數(shù)創(chuàng)建對(duì)象。

1.?構(gòu)造函數(shù)

構(gòu)造函數(shù)是專(zhuān)門(mén)用于創(chuàng)建對(duì)象的函數(shù),如果一個(gè)函數(shù)使用 new 關(guān)鍵字調(diào)用,那么這個(gè)函數(shù)就是構(gòu)造函數(shù)。

<script>
 ?// 定義函數(shù)
 ?function foo() {
 ? ?console.log('通過(guò) new 也能調(diào)用函數(shù)...');
  }
 ?// 調(diào)用函數(shù)
 ?new foo;
</script>

總結(jié):

  1. 使用 new 關(guān)鍵字調(diào)用函數(shù)的行為被稱為實(shí)例化

  2. 實(shí)例化構(gòu)造函數(shù)時(shí)沒(méi)有參數(shù)時(shí)可以省略 ()

  3. 構(gòu)造函數(shù)的返回值即為新創(chuàng)建的對(duì)象

  4. 構(gòu)造函數(shù)內(nèi)部的 return 返回的值無(wú)效!

注:實(shí)踐中為了從視覺(jué)上區(qū)分構(gòu)造函數(shù)和普通函數(shù),習(xí)慣將構(gòu)造函數(shù)的首字母大寫(xiě)。

2. 實(shí)例成員

通過(guò)構(gòu)造函數(shù)創(chuàng)建的對(duì)象稱為實(shí)例對(duì)象,實(shí)例對(duì)象中的屬性和方法稱為實(shí)例成員。

<script>
 ?// 構(gòu)造函數(shù)
 ?function Person() {
 ? ?// 構(gòu)造函數(shù)內(nèi)部的 this 就是實(shí)例對(duì)象
 ? ?// 實(shí)例對(duì)象中動(dòng)態(tài)添加屬性
 ? ?this.name = '小明'
 ? ?// 實(shí)例對(duì)象動(dòng)態(tài)添加方法
 ? ?this.sayHi = function () {
 ? ? ?console.log('大家好~')
 ?  }
  }
 ?// 實(shí)例化,p1 是實(shí)例對(duì)象
 ?// p1 實(shí)際就是 構(gòu)造函數(shù)內(nèi)部的 this
 ?const p1 = new Person()
 ?console.log(p1)
 ?console.log(p1.name) // 訪問(wèn)實(shí)例屬性
 ?p1.sayHi() // 調(diào)用實(shí)例方法
</script>

總結(jié):

  1. 構(gòu)造函數(shù)內(nèi)部 this 實(shí)際上就是實(shí)例對(duì)象,為其動(dòng)態(tài)添加的屬性和方法即為實(shí)例成員

  2. 為構(gòu)造函數(shù)傳入?yún)?shù),動(dòng)態(tài)創(chuàng)建結(jié)構(gòu)相同但值不同的對(duì)象

注:構(gòu)造函數(shù)創(chuàng)建的實(shí)例對(duì)象彼此獨(dú)立互不影響。

3. 靜態(tài)成員

在 JavaScript 中底層函數(shù)本質(zhì)上也是對(duì)象類(lèi)型,因此允許直接為函數(shù)動(dòng)態(tài)添加屬性或方法,構(gòu)造函數(shù)的屬性和方法被稱為靜態(tài)成員。

<script>
 ?// 構(gòu)造函數(shù)
 ?function Person(name, age) {
 ? ?// 省略實(shí)例成員
  }
 ?// 靜態(tài)屬性
 ?Person.eyes = 2
 ?Person.arms = 2
 ?// 靜態(tài)方法
 ?Person.walk = function () {
 ? ?console.log('^_^人都會(huì)走路...')
 ? ?// this 指向 Person
 ? ?console.log(this.eyes)
  }
</script>

總結(jié):

  1. 靜態(tài)成員指的是添加到構(gòu)造函數(shù)本身的屬性和方法

  2. 一般公共特征的屬性或方法靜態(tài)成員設(shè)置為靜態(tài)成員

  3. 靜態(tài)成員方法中的 this 指向構(gòu)造函數(shù)本身

二、內(nèi)置構(gòu)造函數(shù)

掌握各引用類(lèi)型和包裝類(lèi)型對(duì)象屬性和方法的使用。

在 JavaScript 中最主要的數(shù)據(jù)類(lèi)型有 6 種,分別是字符串、數(shù)值、布爾、undefined、null 和 對(duì)象,常見(jiàn)的對(duì)象類(lèi)型數(shù)據(jù)包括數(shù)組和普通對(duì)象。

其中字符串、數(shù)值、布爾、undefined、null 也被稱為簡(jiǎn)單類(lèi)型或基礎(chǔ)類(lèi)型,對(duì)象也被稱為引用類(lèi)型。

在 JavaScript 內(nèi)置了一些構(gòu)造函數(shù),絕大部的數(shù)據(jù)處理都是基于這些構(gòu)造函數(shù)實(shí)現(xiàn)的,JavaScript 基礎(chǔ)階段學(xué)習(xí)的 Date 就是內(nèi)置的構(gòu)造函數(shù)。

<script>
 ?// 實(shí)例化
    let date = new Date();
 ?
 ?// date 即為實(shí)例對(duì)象
 ?console.log(date);
</script>

甚至字符串、數(shù)值、布爾、數(shù)組、普通對(duì)象也都有專(zhuān)門(mén)的構(gòu)造函數(shù),用于創(chuàng)建對(duì)應(yīng)類(lèi)型的數(shù)據(jù)。

1. 引用類(lèi)型

①Object

Object 是內(nèi)置的構(gòu)造函數(shù),用于創(chuàng)建普通對(duì)象。

<script>
 ?// 通過(guò)構(gòu)造函數(shù)創(chuàng)建普通對(duì)象
 ?const user = new Object({name: '小明', age: 15})
?
 ?// 這種方式聲明的變量稱為【字面量】
 ?let student = {name: '杜子騰', age: 21}
 ?
 ?// 對(duì)象語(yǔ)法簡(jiǎn)寫(xiě)
 ?let name = '小紅';
 ?let people = {
 ? ?// 相當(dāng)于 name: name
 ? ?name,
 ? ?// 相當(dāng)于 walk: function () {}
 ? ?walk () {
 ? ? ?console.log('人都要走路...');
 ?  }
  }
?
 ?console.log(student.constructor);
 ?console.log(user.constructor);
 ?console.log(student instanceof Object);
</script>

總結(jié):

  1. 推薦使用字面量方式聲明對(duì)象,而不是 Object 構(gòu)造函數(shù)

  2. Object.assign 靜態(tài)方法創(chuàng)建新的對(duì)象

  3. Object.keys 靜態(tài)方法獲取對(duì)象中所有屬性

  4. Object.values 表態(tài)方法獲取對(duì)象中所有屬性值

②Array

Array 是內(nèi)置的構(gòu)造函數(shù),用于創(chuàng)建數(shù)組。

<script>
 ?// 構(gòu)造函數(shù)創(chuàng)建數(shù)組
 ?let arr = new Array(5, 7, 8);
?
 ?// 字面量方式創(chuàng)建數(shù)組
 ?let list = ['html', 'css', 'javascript']
?
</script>

數(shù)組賦值后,無(wú)論修改哪個(gè)變量另一個(gè)對(duì)象的數(shù)據(jù)值也會(huì)相當(dāng)發(fā)生改變。

總結(jié):

  1. 推薦使用字面量方式聲明數(shù)組,而不是 Array 構(gòu)造函數(shù)

  2. 實(shí)例方法 forEach 用于遍歷數(shù)組,替代 for 循環(huán) (重點(diǎn))

  3. 實(shí)例方法 filter 過(guò)濾數(shù)組單元值,生成新數(shù)組(重點(diǎn))

  4. 實(shí)例方法 map 迭代原數(shù)組,生成新數(shù)組(重點(diǎn))

  5. 實(shí)例方法 join 數(shù)組元素拼接為字符串,返回字符串(重點(diǎn))

  6. 實(shí)例方法 find 查找元素, 返回符合測(cè)試條件的第一個(gè)數(shù)組元素值,如果沒(méi)有符合條件的則返回 undefined(重點(diǎn))

  7. 實(shí)例方法every 檢測(cè)數(shù)組所有元素是否都符合指定條件,如果所有元素都通過(guò)檢測(cè)返回 true,否則返回 false(重點(diǎn))

  8. 實(shí)例方法some 檢測(cè)數(shù)組中的元素是否滿足指定條件 如果數(shù)組中有元素滿足條件返回 true,否則返回 false

  9. 實(shí)例方法 concat 合并兩個(gè)數(shù)組,返回生成新數(shù)組

  10. 實(shí)例方法 sort 對(duì)原數(shù)組單元值排序

  11. 實(shí)例方法 splice 刪除或替換原數(shù)組單元

  12. 實(shí)例方法 reverse 反轉(zhuǎn)數(shù)組

  13. 實(shí)例方法 findIndex 查找元素的索引值

2. 包裝類(lèi)型

在 JavaScript 中的字符串、數(shù)值、布爾具有對(duì)象的使用特征,如具有屬性和方法,如下代碼舉例:

<script>
 ?// 字符串類(lèi)型
 ?const str = 'hello world!'
    // 統(tǒng)計(jì)字符的長(zhǎng)度(字符數(shù)量)
 ?console.log(str.length)
 ?
 ?// 數(shù)值類(lèi)型
 ?const price = 12.345
 ?// 保留兩位小數(shù)
 ?price.toFixed(2) // 12.34
</script>

之所以具有對(duì)象特征的原因是字符串、數(shù)值、布爾類(lèi)型數(shù)據(jù)是 JavaScript 底層使用 Object 構(gòu)造函數(shù)“包裝”來(lái)的,被稱為包裝類(lèi)型。

①String

String 是內(nèi)置的構(gòu)造函數(shù),用于創(chuàng)建字符串。

<script>
 ?// 使用構(gòu)造函數(shù)創(chuàng)建字符串
 ?let str = new String('hello world!');
?
 ?// 字面量創(chuàng)建字符串
 ?let str2 = '你好,世界!';
?
 ?// 檢測(cè)是否屬于同一個(gè)構(gòu)造函數(shù)
 ?console.log(str.constructor === str2.constructor); // true
 ?console.log(str instanceof String); // false
</script>

總結(jié):

  1. 實(shí)例屬性 length 用來(lái)獲取字符串的度長(zhǎng)(重點(diǎn))

  2. 實(shí)例方法 split('分隔符') 用來(lái)將字符串拆分成數(shù)組(重點(diǎn))

  3. 實(shí)例方法 substring(需要截取的第一個(gè)字符的索引[,結(jié)束的索引號(hào)]) 用于字符串截取(重點(diǎn))

  4. 實(shí)例方法 startsWith(檢測(cè)字符串[, 檢測(cè)位置索引號(hào)]) 檢測(cè)是否以某字符開(kāi)頭(重點(diǎn))

  5. 實(shí)例方法 includes(搜索的字符串[, 檢測(cè)位置索引號(hào)]) 判斷一個(gè)字符串是否包含在另一個(gè)字符串中,根據(jù)情況返回 true 或 false(重點(diǎn))

  6. 實(shí)例方法 toUpperCase 用于將字母轉(zhuǎn)換成大寫(xiě)

  7. 實(shí)例方法 toLowerCase 用于將就轉(zhuǎn)換成小寫(xiě)

  8. 實(shí)例方法 indexOf 檢測(cè)是否包含某字符

  9. 實(shí)例方法 endsWith 檢測(cè)是否以某字符結(jié)尾

  10. 實(shí)例方法 replace 用于替換字符串,支持正則匹配

  11. 實(shí)例方法 match 用于查找字符串,支持正則匹配

注:String 也可以當(dāng)做普通函數(shù)使用,這時(shí)它的作用是強(qiáng)制轉(zhuǎn)換成字符串?dāng)?shù)據(jù)類(lèi)型。

②Number

Number 是內(nèi)置的構(gòu)造函數(shù),用于創(chuàng)建數(shù)值。

<script>
 ?// 使用構(gòu)造函數(shù)創(chuàng)建數(shù)值
 ?let x = new Number('10')
 ?let y = new Number(5)
?
 ?// 字面量創(chuàng)建數(shù)值
 ?let z = 20
?
</script>

總結(jié):

  1. 推薦使用字面量方式聲明數(shù)值,而不是 Number 構(gòu)造函數(shù)

  2. 實(shí)例方法 toFixed 用于設(shè)置保留小數(shù)位的長(zhǎng)度文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-671573.html

到了這里,關(guān)于【JavaScript筆記】面對(duì)對(duì)象與構(gòu)造函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【JavaScript】創(chuàng)建和使用構(gòu)造函數(shù)

    在 JavaScript 中,構(gòu)造函數(shù)是一種特殊的函數(shù),用于創(chuàng)建和初始化對(duì)象。通過(guò)構(gòu)造函數(shù),你可以定義自己的對(duì)象類(lèi)型,并在創(chuàng)建新對(duì)象時(shí)進(jìn)行一些初始化操作。本篇博客將介紹構(gòu)造函數(shù)的概念、創(chuàng)建方式、使用方法以及一些最佳實(shí)踐。 構(gòu)造函數(shù)是一種特殊類(lèi)型的函數(shù),用于創(chuàng)建

    2024年02月21日
    瀏覽(45)
  • 【Javascript】構(gòu)造函數(shù)之new的作用

    【Javascript】構(gòu)造函數(shù)之new的作用

    目錄 new的作用 把對(duì)象返回了回來(lái) 無(wú)new 有new? ? 把構(gòu)造函數(shù)的this指向了要返回的對(duì)象? ?無(wú)new?編輯 有new new的執(zhí)行流程 創(chuàng)建了新空對(duì)象 將構(gòu)造函數(shù)的作用域賦值給新對(duì)象(this指向新對(duì)象) 執(zhí)行構(gòu)造函數(shù)代碼 (為這個(gè)新對(duì)象添加屬性) 返回新對(duì)象 ? 當(dāng)我們定義一個(gè)函數(shù)的時(shí)

    2024年02月07日
    瀏覽(25)
  • JavaScript 函數(shù)、函數(shù)構(gòu)造、函數(shù)調(diào)用、參數(shù)、函數(shù)返回值、變量的作用域、預(yù)解析

    一、函數(shù)及函數(shù)的構(gòu)造 函數(shù)是一個(gè)可重用的代碼塊,用來(lái)完成某個(gè)特定功能。每當(dāng)需要反復(fù)執(zhí)行一段代碼時(shí),可以利用函數(shù)來(lái)避免重復(fù)書(shū)寫(xiě)相同代碼。 函數(shù)包含著的代碼只能在函數(shù)被調(diào)用時(shí)才會(huì)執(zhí)行,就可以避免頁(yè)面載入時(shí)執(zhí)行該腳本 簡(jiǎn)單來(lái)說(shuō)就是一個(gè)封裝,封裝的是一個(gè)特

    2024年02月06日
    瀏覽(34)
  • 深入解析JavaScript中構(gòu)造函數(shù)和new操作符

    深入解析JavaScript中構(gòu)造函數(shù)和new操作符

    ????? 個(gè)人主頁(yè): 《愛(ài)蹦跶的大A阿》 ?? 當(dāng)前正在更新專(zhuān)欄: 《VUE》?、《JavaScript保姆級(jí)教程》、《krpano》 ?? ? 目錄 ? 前言 ? 正文 第一節(jié):構(gòu)造函數(shù) 第二節(jié):new操作符 第三節(jié):實(shí)例與原型 ? 結(jié)語(yǔ) ? ????????JavaScript中的構(gòu)造函數(shù)是一種特殊的函數(shù),用于生成對(duì)象。

    2024年01月20日
    瀏覽(30)
  • 【前端知識(shí)】JavaScript——設(shè)計(jì)模式(工廠模式、構(gòu)造函數(shù)模式、原型模式)

    工廠模式是一種眾所周知的設(shè)計(jì)模式,廣泛應(yīng)用于軟件工程領(lǐng)域,用于抽象創(chuàng)建特定對(duì)象的過(guò)程。 優(yōu)點(diǎn):可以解決創(chuàng)建多個(gè)類(lèi)似對(duì)象的問(wèn)題 缺點(diǎn):沒(méi)有解決對(duì)象標(biāo)識(shí)問(wèn)題(即新創(chuàng)建的對(duì)象是什么類(lèi)型) 示例: 構(gòu)造函數(shù)模式與工廠模式相比,沒(méi)有顯式地創(chuàng)建對(duì)象,其屬性和方

    2024年02月15日
    瀏覽(54)
  • JavaScript-內(nèi)置對(duì)象-筆記

    1.Math對(duì)象 Math對(duì)象: 用于進(jìn)行數(shù)字處理 自帶的對(duì)象 不是構(gòu)造函數(shù)---不需要new 屬性: Math.PI ----- 圓周率 方法: Math.floor(數(shù)字) ----- 向下取整 (只要整數(shù)位) Math.ceil(數(shù)字) ---- 向上取整(不管小數(shù)位是幾,直接進(jìn)一) Math.round(數(shù)字) ---- 四舍五入取整 Math.abs(數(shù)字) ---- 絕對(duì)值 M

    2024年01月22日
    瀏覽(19)
  • 轉(zhuǎn)換json格式的日期為Javascript對(duì)象的函數(shù)

    轉(zhuǎn)換json格式的日期為Javascript對(duì)象的函數(shù)

    項(xiàng)目中碰到了用jQuery從后臺(tái)獲取的json格式的日期的字符串,需要將此字符串轉(zhuǎn)換成JavaScript的日期對(duì)象。 代碼如下: 開(kāi)發(fā)中有時(shí)候需要從服務(wù)器端返回json格式的數(shù)據(jù),在后臺(tái)代碼中如果有DateTime類(lèi)型的數(shù)據(jù)使用系統(tǒng)自帶的工具類(lèi)序列化后將得到一個(gè)很長(zhǎng)的數(shù)字表示日期數(shù)據(jù),

    2023年04月25日
    瀏覽(21)
  • 【JavaScript】對(duì)象 ② ( 對(duì)象使用 | 調(diào)用對(duì)象屬性 | 調(diào)用對(duì)象方法 | 變量與屬性區(qū)別 | 函數(shù)與方法區(qū)別 )

    【JavaScript】對(duì)象 ② ( 對(duì)象使用 | 調(diào)用對(duì)象屬性 | 調(diào)用對(duì)象方法 | 變量與屬性區(qū)別 | 函數(shù)與方法區(qū)別 )

    使用字面量創(chuàng)建對(duì)象要點(diǎn) : 在上一篇博客 【JavaScript】對(duì)象 ① ( 對(duì)象概念 | 對(duì)象使用場(chǎng)景 | 使用字面量創(chuàng)建對(duì)象 | 空對(duì)象字面量 | 小括號(hào) / 中括號(hào) / 大括號(hào) 作用 ) 中 , 介紹了 使用 字面量 創(chuàng)建對(duì)象 , 有如下要點(diǎn) : 鍵值對(duì) : 對(duì)象字面量 中的 屬性 和 方法 都是以 \\\" 鍵值對(duì) \\\" 的形

    2024年04月14日
    瀏覽(26)
  • 掌握 JavaScript:從初學(xué)者到高級(jí)開(kāi)發(fā)者的完整指南之JavaScript對(duì)象(二)

    掌握 JavaScript:從初學(xué)者到高級(jí)開(kāi)發(fā)者的完整指南之JavaScript對(duì)象(二)

    可以大體分頁(yè)3大類(lèi): 第一類(lèi):基本對(duì)象,我們主要學(xué)習(xí)Array和JSON和String 第二類(lèi):BOM對(duì)象,主要是和瀏覽器相關(guān)的幾個(gè)對(duì)象 第三類(lèi):DOM對(duì)象,JavaScript中將html的每一個(gè)標(biāo)簽都封裝成一個(gè)對(duì)象 1.1.1 基本對(duì)象 1.1.1.1 Array對(duì)象 語(yǔ)法格式 Array對(duì)象時(shí)用來(lái)定義數(shù)組的。常用語(yǔ)法格式有如下

    2024年02月07日
    瀏覽(24)
  • 【JavaScript】函數(shù) ⑥ ( 使用 arguments 獲取所有實(shí)參 | arguments 內(nèi)置對(duì)象 | 偽數(shù)組概念 )

    【JavaScript】函數(shù) ⑥ ( 使用 arguments 獲取所有實(shí)參 | arguments 內(nèi)置對(duì)象 | 偽數(shù)組概念 )

    在 定義 JavaScript 函數(shù) 時(shí) , 有時(shí) 不確定 形參的個(gè)數(shù) , 形參寫(xiě)少了不夠用 , 寫(xiě)多了又很浪費(fèi) , 這里 推薦使用 arguments 內(nèi)置參數(shù)對(duì)象 ; 在 JavaScript 的 每個(gè)函數(shù) 的 內(nèi)部都可以訪問(wèn) 內(nèi)置的 arguments 對(duì)象 , 該對(duì)象中 包含了 調(diào)用者 傳遞給函數(shù)的所有 實(shí)參 , 即使 在 函數(shù) 形參 中沒(méi)有明

    2024年04月22日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包