JavaScript ES5 对象方法

admin3年前 (2023-07-08)it知识807

ECMAScript 5 (2009) 向 JavaScript 添加了许多新的对象方法。

管理对象

// 以现有对象为原型创建对象Object.create()//添加或更改对象属性Object.defineProperty(object, property, descriptor)//添加或更改对象属性Object.defineProperties(object, descriptors)//访问属性Object.getOwnPropertyNames(object)//以数组返回所有属性Object.getOwnPropertyNames(object)//访问原型Object.getPrototypeOf(object)//以数组返回可枚举属性Object.keys(object)

保护对象


//防止向对象添加属性Object.preventExtensions(object)//如果属性可以添加到对象,则返回trueObject.isExtensible(object)//防止更改对象属性(不是值)Object.seal(object)//如果对象被密封,则返回trueObject.freeze(object)//如果对象被冻结,则返回trueObject.isFrozen(object)

更改属性值

const person = {  firstName: "Bill",  lastName: "Gates",  language: "EN"};//修改属性Object.defineProperty(person, "language", {value: "NO"});Object.defineProperty(person, "language", {enumerable: false});  Object.keys(person) //返回可枚举属性的数组 这时就少了language.

更改元数据

ES5允许更改一下属性元数据[文]

writable: true // 属性值可更改 or false 不更改 

enumerable: true //属性可枚举or false 不更改 

configurable: true //属性可重新配置 or false 不更改 

一个计数器实例:

//定义对象const  obj = {counter:0};//定义setterObject.defineProperty(obj, "reset", {get: function(){ this.counter = 0;  }});Object.defineProperty(obj, "increment", {get: function(){ this.counter++;  }});Object.defineProperty(obj, "decrement", {get: function(){ this.counter--;  }});Object.defineProperty(obj, "add", {set: function(value){ this.counter += value;  }});Object.defineProperty(obj, "subtract", {set: function(value){ this.counter -= i;  }});//操作计算器obj.reset;obj.add = 5;obj.subtract = 1;obj.increment;obj.decrement;


标签: JavaScript

相关文章

JavaScript 对象定义

在JavaScript 中,对象是王。如果你理解了对象,就理解了javascript。在Javascript 中,几乎所有事物都是对象。 布尔是对象(如果用new 关键词定义)数字是对象(如...

JavaScript 对象原型

前面有一章提到无法为已有的对象构造器添加新属性Person.nationality = "English";  //得到的是undefine...

JavaScript Set

JavaScript的Set(集合)是一组唯一值的集合。每个值只能在Set中出现一次。Set可以容纳任何数据类型的值。如何创建Set将数组传递给new Set()创建一个新的Set, 然后使用add(...

关于Javascript

JavaScript是一种广泛使用的编程语言,用于在网页上添加交互性和动态性。它是一种高级,动态类型的脚本语言,常常与HTML和CSS一起使用,以创建丰富的用户体验。JavaScript具有以下优美的...

vue-router导航守卫

vue-router的导航守卫可以用来在路由跳转过程中添加自定义逻辑,例如验证、权限控制、重定向等。导航守卫可以分为三种:全局导航守卫、路由独享守卫和组件内的守卫1。全局导航守卫可以使用router....

javascript的重要性

JavaScript在编程中具有以下重要性:前端开发:JavaScript是Web前端开发的基础语言,用于创建动态交互性和用户界面。它可以直接在浏览器中运行,使得开发者可以快速构建和部署Web应用程序...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。