简介

Object.defineProperty()方法是用于声明一个变量,类似var let,但是他可以做一些比较高级的选项。

最基本的使用:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Object.defineProperty学习</title>
</head>
<body><script>const obj = {age:18};//该方法接收三个参数://1. 变量设置的上下文,一般是一个对象实例。//2. 变量名。//3. 一个配置对象。Object.defineProperty(obj,"name",{//设置变量的值value:"Yehaocong",})console.log(obj);</script>
</body>
</html>

结果:

由上图可知,使用Object.defineProperty()方法定义的对象默认是不能修改、被枚举和被删除的,可以通过配置对象的enumerable属性、writable属性和configurable属性配置的。

结果:

Object.defineProperty()有个比较高级的功能是他有get属性和set属性,都是一个方法。

get方法会在获取该属性值时进行调用,并且该方法的返回值会是这个属性的值。
set方法会在设置该属性值时进行调用,该方法接收一个参数,就是被修改的新值。

JavaScript变量高级定义之Object.defineProperty()方法讲解相关推荐

  1. JavaScript Object.defineProperty()方法详解

    Object.defineProperty() 方法直接在一个对象上定义一个新属性,或者修改一个已经存在的属性,并返回这个对象.因此,又称为属性拦截器.在前端中,webpack以及vue的原理都应用了 ...

  2. Object.defineProperty方法(详解)

    OK,这一篇主要想说一下Object.defineProperty这个方法. 这个方法也是Vue数据双向绑定原理的常见面试题 所以也是有必要好好掌握的哦 首先我们知道JS中是支持面向对象编程的,也是有 ...

  3. Object.defineProperty方法的简单介绍

    Object.defineProperty 对象定义属性和赋值 let Person = {} Person.name = 'cc' person['age'] = 18 Object.defineP ...

  4. Object.defineProperty方法

    Object.defineProperty() (一次添加/修改一个属性) 用法:Object.defineProperty(obj, prop, descriptor) 方法会直接在一个对象上定义一 ...

  5. vue中实现双向数据绑定原理,使用了Object.defineproperty()方法,方法简单

    在vue中双向数据绑定原理,我们一般都是用v-model来实现的 ,但一般在面试话会问到其实现的原理, 方法比较简单,就是利用了es5中的一个方法.Object.defineproperty(),它有 ...

  6. Object.defineProperty()方法的用法详解

    Object.defineProperty()函数是给对象设置属性的. Object.defineProperty(object, propertyname, descriptor); 一共有三个参数 ...

  7. JavaScript中数组定义的几种方法,以及关于数组长度的讨论

    大家在使用JavaScript编写脚本语言的时候,尤其是习惯使用Java语言的朋友,定义了一个固定长度的数组,但是使用了一个超出定义数组的元素,程序并没有报"数组越界"错误,这到底 ...

  8. 1507四舍五入c语言,JavaScript中用于四舍五入的Math.round()方法讲解

    此方法返回一个数四舍五入为最接近的整数的值. 语法 Math.round( x ) ; 下面是参数的详细信息: x: 一个数字 返回值: 返回数字四舍五入为最接近的整数的值. 例子: JavaScri ...

  9. JavaScript变量、属性、函数、方法的区别(1)

    1.变量和属性的区别 2.函数和方法的区别 以下是代码演示:

最新文章

  1. 卡壳了~~~ 解决了~~~My Site创建成功了.....
  2. 十年AI学者影响力盘点:何恺明排名第一,华人学者呈正向流入
  3. Maven 使用代理下载依赖
  4. win10下c/c++隐藏进程
  5. 关于C++ Qt项目实现最简单Http Server的踩坑记录
  6. 组合模式_[设计模式]10.组合模式
  7. 各版SQL字符串拼接
  8. 某化工学院安装锐捷elog
  9. redistemplate 设置永不过期_解决密码已过期,拒绝访问问题
  10. truffle version/usr/local/lib/node_modules/truffle/build/385.bundled.js:65232 catch cli.bundled.js:6
  11. 根据输入时间判断年龄是否在18~68周岁之间
  12. 图:双屏前期设置方法[又名:系统扩展桌面设置方法-双屏双显扩展桌面技术前期设置方法-PPT分屏技术设置方法]
  13. 【招】阿里云技术战略高级专家
  14. Anaconda3安装以及常用命令
  15. python pdf转txt_Python之pdf转txt
  16. 数学魔鬼表达式——第三天
  17. Python自动登录QQ的实现示例
  18. linux netfilter路由表,Netfilter策略路由和uRPF
  19. 基于lightgbm的金融风控算法实践(Python版)
  20. ubuntu 20.04 安装百度网盘

热门文章

  1. Java学习笔记2.1.3 Java基本语法 - Java关键字与标识符
  2. Python学习笔记:模块与包
  3. Python学习笔记:交互对话环境IPython
  4. 【BZOJ4128】Matrix,拔山盖世的矩阵乘法+随机化
  5. ithoughts怎么自定义样式_Word 表格样式,用过的人可能都会遇到这个问题
  6. bzoj4417 [Shoi2013]超级跳马 矩乘
  7. java struts2下载文件_java struts2入门学习---文件下载的二种方式
  8. Intel Core Solo/Duo处理器架构/微架构/流水线 - 前端/数据预取/SSE3
  9. error LNK2005: _DllMain@12 already defined in MSVC
  10. umi脚手架搭建的项目_还在从零开始搭建项目?手撸了款快速开发脚手架!