前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >熟悉js的面向对象对进阶是非常重要的

熟悉js的面向对象对进阶是非常重要的

原创
作者头像
Rosen9420
发布于 2024-12-24 12:33:24
发布于 2024-12-24 12:33:24
1020
举报

什么是对象

万物皆对象,面向对象编程可以让你对面逻辑更清晰。

话不多说,进入正题。

  1. ECMA-262将对象定义为一组属性无序集合。即不保证key的顺序。
  2. 对象有属性和方法。例如:let obj={name:"小华",say(){console.log("我很帅")}},其中name就是属性,say就是方法;一般属性描述对象的特征,方法是对像的行为。

创建对象

  1. 创建对象有两种方式:可以通过new Object()创建或者字面量方式{};一般用字面量方式较简便。

创建完对象后,我们就要操作对象,操作对象就要知道有哪些属性我们可以操作

对象分两种属性,数据属性和访问器属性。

  • 数据属性包含一个保存数据值的位置。
  • 有4个特性描述他们的行为:[[Configurable]]、[[Enumerable]]、[[Writable]]和[[Value]]。

通过上面4个属性,我们就可以控制对象了,接下来我们介绍如何控制对象,控制对象就是告诉使用者对象是否可以删,可改,可读,可写。

要修改属性的默认特性,就必须使用 Object.defineProperty()方法,接收三个入参:对象,属性的名称,描述符对象。

因为设置configurable为false,因此不能删掉name属性

false:

true:

其他几个属性可以自己操作。

访问器属性也有4个特性,不同的是没有writable和value,取而代之的是setter和getter

结束,希望对你编码有作用,感谢阅读!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JavaScript之对象(一)
数据属性有四个特性。通过特性,可以设置属性。如通过[[Enumerable]]为false就能不让该属性被枚举。另外,为了区别是不是特殊的属性,规范会用两个中括号将特性的名称括起来,如[[Writable]]。
赤蓝紫
2023/03/11
1870
JavaScript之对象(一)
JS-面向对象的程序设计
今天重读了一下<<JavaScript高级程序设计>>的几章,其中的面向对象的程序设计,写的很好,让自己受益匪浅,特此记录.
拿我格子衫来
2022/01/23
3890
JS面向对象的程序设计
http://www.cnblogs.com/gaojun/p/3386552.html
bear_fish
2018/09/19
1.4K0
《JavaScript高级程序设计》学习笔记(5)——面向对象编程
 欢迎关注本人的微信公众号“前端小填填”,专注前端技术的基础和项目开发的学习。   本节内容对应《JavaScript高级程序设计》的第六章内容。 1、面向对象(Object-Oriented, OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。前面提到过,ECMAScript中没有类的概念,因此它的对象也与基于类的语言中的对象有所不同。 ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。”严格来讲,这就相当于说对象是一组没有
mukekeheart
2018/03/01
7410
关于JavaScript 对象的理解
关于JavaScript 对象的理解 对象 理解对象 ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。”严格来讲,这就相当于说对象是一组没有特定顺序的值。对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。 我们可以把ECMAScript的对象想象成散列表:无非就是一组名值对,其中的值可以是数据或函数。 每个对象都是基于一个引用类型创建的,即创建自定义对象的最简单方式就是创建一个Object的实例,然后再为它添加属性和方法 合并对象 它 是值 把源对象所有属性 复
程序员海军
2022/02/15
4380
浅谈JavaScript的面向对象程序设计(一)
  面向对象的语言有一个标志,他们都有类的概念,通过类可以创建多个具有相同属性和方法的对象。但是JavaScript中没有类的概念,因此JavaScript与其他的面向对象语言还是有一定区别的。JavaScript把对象定义为无序属性的集合,其属性可以包含基本值、对象或者函数。对象的每个属性或者方法都有一个名字,而每个名字都映射到一个值。所有我把JavaScript的对象看成一组无序的键值对。 对象是什么   以前曾介绍过对象的创建,建立对象最简单的方式就是建立Object对象的一个实例,再为他添加属性和方
水击三千
2018/02/27
7470
javascript 跳跃式前进 (4) - 对象基础理论
ECMAScript中我觉得非常重要的一块就是对于对象的理解了,就我个人而言,我的理解还是不够透彻的; 所以这篇文章不扯多深,只扯扯比较表层的知识;
CRPER
2024/01/26
1110
浅谈JavaScript面向对象
对象(Object)应该算是js中最为重要的部分,也是js中非常难懂晦涩的一部分。更是面试以及框架设计中各出没。写这篇文章,主要参考与JavaScript红宝书(JavaScript高级程序设计 第六章章节)以及各大博主博客。 原文地址:https://github.com/Nealyang/YOU-SHOULD-KNOW-JS
Nealyang
2019/09/29
4450
浅谈JavaScript面向对象
【前端】:对象、原型、继承
在 ES5 之前,JavaScript 语言本身并没有提供可以直接检测属性特性的方法,比如判断属性是否是只读。但是从 ES 开始,所有的属性都具备了属性描述符。
WEBJ2EE
2020/02/26
1.1K0
面向对象的程序设计
ECMA-262把对象定义为:”无序属性的集合,其属性可以包含基本值、对象或者函数。”
奋飛
2019/08/15
4520
JavaScript(七)
这一篇,我们说说 ES 中的面向对象。 ECMAScript 中没有类的概念,因此它的对象也与基于类的语言中的对象有所不同。 ECMA-262 把对象定义为: “无序属性的集合,其属性可以包含基本值、对象或者函数。” 对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。我们可以把 ECMAScript 的对象想象成散列表: 一组键值对,其中值可以是数据或函数。
1ess
2021/10/29
3160
《你不知道的JavaScript》:js对象的属性特性和枚举深入
可以看到,检测属性的结果打印为4个属性数据描述符:value(属性值)、writable(可写)、enumerable(可枚举)、configurable(可配置)。
前端_AWhile
2019/08/29
1.1K0
全面梳理JS对象的访问控制及代理反射
在 Javascript 中,读取、赋值、调用方法等等,几乎一切操作都是围绕“对象”展开的;长久以来,如何更好的了解和控制这些操作,就成了该语言发展中的重要问题。
江米小枣
2020/06/16
2.3K1
JavaScript object.defineproperty 学习
Object.defineProperty 是 JavaScript 中的一个方法,用于直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。这个方法允许你精确地控制属性的特性,比如是否可写、是否可枚举、是否可配置等。
高久峰
2024/12/24
830
javaScript 的面向对象程序
数据属性(数据属性包含一个数据值的位置,这个位置可以读取和写入值,数据属性有4描述)
用户1197315
2019/12/30
1.2K0
js Object.defineProperty()详解
要修改属性的默认特性,就必须使用 Object.defineProperty()方法 ;在了解Object.defineProperty()之前,需要先明白对象属性的一些特性,明白了这些特性之后,对Object.defineProperty()的学习就会顺利很多了。
IT工作者
2022/05/12
2.6K0
JavaScript 对象可以做到的三件事
除了普通的对象属性赋值和遍历之外,我们还可以使用 JavaScript 对象执行许多其他操作。在本文中,我们将了解如何使用它们,包括访问内部属性、操作属性描述符和继承只读属性。
前端小智@大迁世界
2020/06/05
7550
《javascript高级程序设计》笔记:对象数据属性和访问器属性
创建自定义对象最简单的方式就是以字面量的形式创建对象(或创建一个Object实例),然后再为它添加属性和方法,如下所示:
全栈程序员站长
2022/07/20
1K0
达观数据前端分享:理解 JavaScript 中的对象的属性
在达观数据的前端工作中,对象的属性是经常接触和使用的,正好最近重温了一下《JavaScript 高级程序设计》,把书中理解对象属性的部分整理一下与大家分享。 ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或函数”。对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。 JavaScript原生提供一个Object对象,所有其他对象都继承自这个对象。Object本身也是一个构造函数,可以直接通过它来生成新对象。 创建自定义对象最简单的方式是创建一个Object的实例,再为
达观数据
2018/03/30
1.9K0
JS入门难点解析13-属性描述符,数据属性和访问器属性
(注1:如果有问题欢迎留言探讨,一起学习!转载请注明出处,喜欢可以点个赞哦!) (注2:更多内容请查看我的目录。)
love丁酥酥
2018/08/27
2.1K0
JS入门难点解析13-属性描述符,数据属性和访问器属性
相关推荐
JavaScript之对象(一)
更多 >
LV.1
这个人很懒,什么都没有留下~
作者相关精选
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档