Object-属性类型

ECMAScript中有两种属性:数据属性和访问器属性

1.数据属性

数据属性包含一个数据值的位置。在这个位置可以读取和写入值。数据属性有4个描述其行为的特征。
1.[[writable]]: 表示能否修改属性的值。默认值为 true
2.[[Enumerable]]: 表示能否通过for-in循环返回属性。默认值为 true
3.[[Configurable]]: 表示能否通过delete删除属性从而从新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。默认值为 true
4.[[value]]: 包含这个属性的数据值。默认值为 undefined

修改属性默认的特征,必须使用Object.defineProperty()方法。描述对象的属性必须是:writable、Enumerable、Configurable、value。可以设置一个或多个值,可以修改对应的特性值。

let person = {}
Object.defineProperty(person, 'name', {
	writable: false,
	value: 'zhang'
})
console.log(person.name) // zhang
person.name = 'haha'
// 数据未被修改
console.log(person.name) // zhang

2.访问器属性

有4个特征
1.[[Get]]: 在读取属性时调用的函数。默认值 undefined
2.[[Set]]: 在写入属性时调用的函数。默认值 undefined
3.[[Enumerable]]: 表示能否通过for-in循环返回属性。默认值为 true
4.[[Configurable]]: 表示能否通过delete删除属性从而从新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。默认值为 true

let person = {
	_name: 'zhang',
	age: 18
}
			
Object.defineProperty(person, 'name', {
	get: function() {
	return this._name
  },
  set: function(newValue) {
	this._name = newValue
	this.age = 21
  }
})
			
person.name = 'haha'
console.log(person.name) // haha
console.log(person.age) // 21
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面向对象编程(Object-Oriented Programming,简称OOP)是一种编程方法论和程序设计范式。基于OOP的设计理念,将系统中的各种事物(被称为对象)看作是相互连接的实体,每个对象具有特定的属性和可执行的操作。OOP的主要目标是通过将复杂的系统分解为更小、更易于管理的部分,提高代码的可读性、可维护性及重用性。 OOP通过将问题分解为可描述的对象并定义它们之间的关系来建模现实世界中的问题。通过封装、继承和多态等概念,OOP使得程序开发者能够更容易地理解和组织代码。封装将数据和相关操作组合在一起,以便对外部隐藏内部的具体实现细节。继承允许对象从其他对象继承属性和行为,并在此基础上进行扩展和定制。多态允许使用相同的接口来处理不同类型的对象。 使用OOP的方法可以提供许多好处。首先,它可以提高代码的模块化性,使得程序更易于组织、理解和维护。其次,OOP概念支持代码的重用,通过定义通用的类和对象,可以在不同的应用程序中多次使用。此外,OOP还可以提供更高级的抽象和封装性,使得代码更易于理解和调试。 然而,OOP并不适用于所有类型的编程问题。在某些情况下,面向过程的编程或其他编程方法可能更加合适。同时,OOP编程需要一定的学习成本,在开发过程中需要考虑到对象之间的关系、封装的合理性以及类的设计等问题。 总之,面向对象编程是一种强大和灵活的程序设计范式,通过将系统划分为独立的对象并定义它们之间的关系,可以提供更模块化、可扩展和可重用的代码。但它并不是解决所有编程问题的万能工具,需要根据具体情况选择合适的编程方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值