JavaScript ES5 对象方法

admin1年前 (2023-07-08)it知识212

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

相关文章

Array类型判断

Array类型如何判断一个变量是数组?1.判断是否具备数组某些方法if(arr.splice){}2.instanceof(某些IE版本不正确)arr instanceof Array3.Array....

JavaScript 数据类型

javascript 变量可以保存多种数据类型:数值、字符串值、数组、对象var x;   // x是undefined var leng...

javascript字符串方法和属性

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

JavaScript 字符串模板

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

javascript 数组

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

JavaScript 数组方法

数组转换成字符串Javascript 方法 toString() 把数组转换为数组值(逗号分隔)的字符串。var fruits = ["banana"...

发表评论

访客

看不清,换一张

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