前端面試寶典---創建對象的配置

Object.create 對整個對象的多個屬性值進行配置

創建對象 不可更改屬性值

// 創建對象 不可更改屬性值
let obj = Object.create({}, 
{name: {value: 'lisi',writable: false,},age: {value: 20,writable: true,}
})console.log('初始化obj', obj)
obj.name = 'wangwu'
console.log('更新不可變屬性name', obj)
obj.age = 30
console.log('更新可變屬性age', obj);   

在這里插入圖片描述

創建對象 不可枚舉屬性

// 創建對象 不可枚舉屬性
let obj2 = Object.create({}, 
{name: {value: 'lisi',enumerable: false,},age: {value: 20,enumerable: true,}
})
for (const key in obj2) {console.log('不可枚舉屬性', key)
} // 不可枚舉屬性 age

創建對象 屬性攔截器

// 創建對象 屬性攔截器
let name = 'zhangsan'
let obj3 = Object.create({},{name: {get () {return name},set (value) {if (value === 'wangwu') {console.log('非法操作')return}name = value}}}
)console.log('初始化obj3', obj3)
obj3.name = 'wangwu'

在這里插入圖片描述

Object.defineProperty 對一個對象的單個屬性進行配置

let obj = { name: 'zhangsan' }
Object.defineProperty(obj, 'name', {value: 'lisi',writable: false,enumerable: false,configurable: false
})
console.log('obj', obj)
let obj2 = { name: 'wangwu' }
Object.defineProperty(obj2, 'name', {get () {return 'lisi'},set (value) {console.log('非法操作')}
})
console.log('obj2', obj2)`

在這里插入圖片描述

總結

對象配置方法

Object.create(原型,配置) => 對象 :用于基于指定原型和配置創建對象,可進行整個對象的多個配置 。
Object.defineProperty(對象,屬性名,配置) :用于為一個對象的單個屬性進行配置。Object.defineProperties(obj, props)

配置項說明

  1. 值相關
    value:屬性的默認值。
    writable:表示屬性值是否可寫。
  2. 訪問器:
    setter(存儲器 ):用于設置屬性 value 。
    getter(獲取器 ):用于獲取屬性 value 。
  3. 屬性相關
    enumerable:決定屬性是否能被 API 或者語法獲取(即是否為開放屬性)。
    configurable:決定屬性是否可以被刪除,以及是否能再次使用 defineProperty 重新定義。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/77701.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/77701.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/77701.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據結構:C語言版嚴蔚敏和解析介紹,附pdf

《數據結構:C語言版(第2版)》嚴蔚敏李冬梅吳偉民.pdf 《數據結構:C語言版》嚴蔚敏,李冬梅.pdf 《數據結構C語言第2版習題解析與實驗指導》李冬梅.pdf 「《數據結構:C語言版(第2版 )》…

深入理解 v-for 指令及其使用方法

在 Vue.js 中,v-for 是用于渲染列表的核心指令,它允許你通過循環渲染數據源中的每一項。通過 v-for,你可以輕松地將數組、對象或其他可迭代的數據渲染成 HTML 元素。本文將詳細介紹 v-for 的基本用法、常見的應用場景、最佳實踐及性能優化&am…

VIRT, RES,SHR之間的關系

VIRT、RES 和 SHR 是進程內存使用的三個關鍵指標,它們之間的關系反映了進程的內存分配和使用情況。以下是它們的定義和關系: VIRT(虛擬內存):表示進程分配的虛擬內存總量,包括所有代碼、數據、共享庫、堆棧…

2025屆藍橋杯JavaB組個人題解(暫時不全,沒題目)

2025 屆藍橋杯 Java B 組題解 第一次參加藍橋杯,輸入輸出都用的BufferedReader和PrintWriter,怕輸入輸出不對或者內存超限,也怕出現小錯誤運行不了的,比如Main打成Mian什么的,但還是希望能拿省一,這里給出自…

在Vue項目的引入meting-js音樂播放器插件

開源項目:https://github.com/swzaaaaaaa/NBlog 1、開源項目中音樂播放插件的使用流程 步驟1:下載meting-js相關文件 在MetingJS官方倉庫或其他可靠的CDN獲取meting-js的JavaScript文件以及相關依賴(如APlayer的文件)。將它們下…

HTML應用指南:利用GET請求獲取全國漢堡王門店位置信息

在當今快節奏的都市生活中,餐飲品牌的門店布局不僅反映了其市場策略,更折射出消費者對便捷、品質和品牌認同的追求。漢堡王(Burger King)作為全球知名的西式快餐品牌之一,在中國市場同樣占據重要地位。自進入中國市場以…

使用 Function 來編寫策略模式:優雅而高效的設計模式實踐

引言:為什么選擇策略模式? 策略模式(Strategy Pattern)是行為設計模式中的經典之一,它允許我們定義一系列的算法或操作,并使得它們可以互換使用。策略模式的關鍵思想是將算法的實現與使用它們的上下文分離…

Windows 系統中安裝 Git 并配置 GitHub 賬戶

由于電腦重裝系統,重新配置了git. 以下是在 Windows 系統中安裝 Git 并配置 GitHub 賬戶的詳細步驟: 1. 安裝 Git 訪問 Git 官網下載頁面下載 Windows 版本的 Git 安裝程序運行安裝程序,使用默認選項即可 2. 配置 Git 用戶信息 打開命令…

MergeX亮相GTC2025:開啟全球廣告流量交易新篇章

全球流量盛宴GTC2025深圳啟幕,共探出海新藍海 2025年4月24日至25日,GTC2025全球流量大會將在深圳福田會展中心9號館隆重召開。作為跨境出海領域內規模最大、資源最豐富、產業鏈最完備的年度盛會,此次大會將匯聚眾多行業精英,共同探…

kubernetes》》k8s》》Volume 數據卷 PVC PV NFS

為啥需要數據卷 容器磁盤上的文件的生命周期是短暫的,這就使得在容器中運行重要應用時會出現一些問題。首先,當容器崩潰時,kubelet會重啟它,但是容器中的文件將丟失——容器以干凈的狀態(鏡像最初的狀態)重…

第十六屆藍橋杯 省賽C/C++ 大學B組

編程題目現在在洛谷上都可以提交了。 未完待續,寫不動了。 C11 編譯命令 g A.cpp -o A -Wall -lm -stdc11A. 移動距離 本題總分:5 分 問題描述 小明初始在二維平面的原點,他想前往坐標 ( 233 , 666 ) (233, 666) (233,666)。在移動過程…

谷歌怎么設置在新標簽頁中打開網頁

按圖示操作即可,藏得真深啊,無語,而且就算打開了,點收藏夾,頂部快捷欄里的網站,網站里的連接,打開也還是覆蓋原來的,呵呵呵呵呵呵呵,有沒有人管管 另外我的edge不知咋滴…

【企業級數據安全】掌握高性能Log4j2敏感信息脫敏方案

前言 在數據安全合規日益嚴格的今天,日志中的敏感信息保護已成為企業IT建設的必備環節。本文帶您深入了解如何打造一套高性能、可實時配置的Log4j2日志脫敏插件,輕松應對各類敏感數據保護需求,讓您的系統既滿足合規要求,又不犧牲…

Linux中的tar -P選項

tar -P選項 Linux中的tar命令可用于文件和目錄的歸檔以及壓縮解壓縮。而其中的-P選項是什么含義呢?下面我們就來看一看 1、不添加-P選項 對于如下壓縮命令: tar -czvf pkg.tar.gz /opt/software執行該命名,控制臺首行輸出將會提示&#xf…

【2025年泰迪杯數據挖掘挑戰賽】B題 詳細解題思路+數據預處理+代碼分享

目錄 2025年泰迪杯B題詳細解題思路問題一問題分析數學模型Python代碼Matlab代碼 問題二問題分析數學模型Python代碼Matlab代碼 問題三問題分析數學模型Python代碼Matlab代碼 問題四問題分析數學模型Python代碼Matlab代碼 2025年泰迪杯B題詳細解題思路 初步分析整理了B題的賽題分…

SpringBoot3快速入門筆記

springboot3簡介 SpringBoot 幫我們簡單、快速地創建一個獨立的、生產級別的 Spring 應用(說明:SpringBoot底層是Spring) 大多數 SpringBoot 應用只需要編寫少量配置即可快速整合 Spring 平臺以及第三方技術 特性: ● 快速創建…

記錄centos8安裝寶塔過程(兩個腳本)

1、切換系統源&#xff08;方便使用寶塔安裝腳本下載&#xff09; bash <(curl -sSL https://linuxmirrors.cn/main.sh) 2、寶塔安裝腳本在寶塔的官網 寶塔面板下載&#xff0c;免費全能的服務器運維軟件 根據自己的系統選擇相應的腳本 urlhttps://download.bt.cn/insta…

Xdocreport實現根據模板導出word

只使用freemaker生成簡單的word文檔很容易&#xff0c;但是當word文檔需要插入動態圖片&#xff0c;帶循環數據&#xff0c;且含有富文本時解決起來相對比較復雜&#xff0c;但是使用Xdocreport可以輕易解決。 Xdocreport既可以實現文檔填充也可以實現文檔轉換&#xff0c;此處…

VMware Fusion Pro/Player 在 macOS 上的完整安裝與使用指南

VMware Fusion Pro/Player 在 macOS 上的完整安裝與使用指南—目錄 一、VMware 產品說明二、下載 VMware Fusion三、安裝前準備四、安裝 VMware Fusion步驟 1&#xff1a;安裝程序步驟 2&#xff1a;首次啟動配置步驟 3&#xff1a;輸入許可證 五、創建虛擬機步驟 1&#xff1a…

Redis常用數據結構和應用場景

一、前言 Redis提供了多種數據結構&#xff0c;每種結構對應不同的應用場景。本文對部分常用的核心數據結構和典型使用場景作出介紹。 二、String&#xff08;字符串&#xff09; 特點&#xff1a;二進制安全&#xff0c;可存儲文本、數字、序列化對象等。場景&#xff1a; 緩…