JavaScript ES5 对象方法

admin2年前 (2023-07-08)it知识508

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)
//如果属性可以添加到对象,则返回true
Object.isExtensible(object)
//防止更改对象属性(不是值)
Object.seal(object)
//如果对象被密封,则返回true
Object.freeze(object)
//如果对象被冻结,则返回true
Object.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};
//定义setter
Object.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 对象构造器

function Person(first, last, age) {       this.fi...

如何提高前端技术

以下是一些可以提高前端技术的建议:不断学习:前端技术不断发展,需要不断学习新的技术和框架,以保持自己的竞争力。可以通过阅读相关书籍、博客、视频教程等途径进行学习。实践项目:通过实践项目,可以更深入地理...

关于Javascript

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

Vue 报错error:0308010C:digital envelope routines::unsupported 解决方案

Error: error:0308010C:digital envelope routines::unsupported出现这个错误是因为 node.js V17版本中最近发布的OpenSSL3.0,...

javascript 数据类型

在Javascript中有8种基本的数据类型(译注:7种原始类型和1种引用类型)。我们可以将任何类型的值存入变量。例如,一个变量可以在前一刻是字符串,下一刻就存储一个数字:let messa...

发表评论

访客

看不清,换一张

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