JavaScript ES5 对象方法

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

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字符串方法和属性

javascript字符串方法和属性1.获取字符串的长度var text=""abcndfsdfdsfsd"; console.log(text.length...

JavaScript 字符串模板

模板字面量使用反引号(``)而不是引号("")来定义字符串:比如:let text = `Hello World`;使用模板字面量,可以在字...

javascript 数组

什么是数组?数组是一个特殊的变量,它能够一次存放一个以上的值。如果你有一个项目清单,在单个变量中存储品牌,那应该是这样字的:var brand1 = "Saab...

JavaScript 数组排序

sort() 方法以字母顺序进行排序var  fruits = ["banana", "orange",&qu...

JavaScript 对象定义

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

JavaScript 的核心是 ECMAScript

JavaScript 的核心是 ECMAScript,具体来说,它包括以下几个方面:语法:JavaScript 的语法包括语句结构、变量定义、函数定义、条件语句、循环语句等。ECMAScript 标准...

发表评论

访客

看不清,换一张

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