JavaScript 对象的属性和方法4种不同的类型

yizhihongxing

JavaScript对象是一种包含属性和方法的数据结构。在JavaScript中,对象属性和方法有4种不同的类型。

1. 数据属性

数据属性是最简单的属性类型。它是对象的一个简单属性,通常被用来存储数据。数据属性有以下特征:

  • value:属性值
  • writable:是否可写(true | false)
  • enumerable:是否可枚举(true | false)
  • configurable:是否可配置(true | false)

下面是一个示例:

var obj = {
  name: 'ZhangSan',
  age: 20
}

console.log(obj.name); // 输出 'ZhangSan'

2. 访问器属性

访问器属性不包含数据值,而是包含getter和setter方法。getter方法负责读取属性值,setter方法负责写入属性值。访问器属性有以下特征:

  • get:获取方法
  • set:设置方法
  • configurable:是否可配置(true | false)
  • enumerable:是否可枚举(true | false)

下面是一个示例:

var obj = {
  firstName: 'Zhang',
  lastName: 'San',
  get fullName() {
    return this.firstName + ' ' + this.lastName;
  },
  set fullName(value) {
    var names = value.split(' ');
    this.firstName = names[0];
    this.lastName = names[1];
  }
};

console.log(obj.fullName); // 输出 'Zhang San'
obj.fullName = 'Li Si';
console.log(obj.firstName); // 输出 'Li'
console.log(obj.lastName); // 输出 'Si'

3. 继承属性

继承属性是从原型链继承的属性。它们不是在对象自身定义的,而是在其原型对象上定义的。继承属性可被所有对象实例共享。继承属性无法通过delete操作符删除,只能通过覆盖其值来隐藏。

下面是一个示例:

function Person(name, age) {
  this.name = name;
  this.age = age;
}

Person.prototype.sayName = function() {
  console.log(this.name);
}

var person1 = new Person('ZhangSan', 20);
var person2 = new Person('LiSi', 22);

person1.sayName(); // 输出 'ZhangSan'
person2.sayName(); // 输出 'LiSi'

在上面的例子中,sayName方法是在Person的原型对象上定义的,而不是在每个对象实例上定义的。这意味着所有Person对象实例都共享这个方法。

4. 内置属性

内置属性是JavaScript语言自带的属性。这些属性通常是指ECMA规范定义的方法。例如Object.prototype.toString()方法,它用于返回对象本身的字符串表示。

下面是一个示例:

var arr = [1, 2, 3];

console.log(arr.toString()); // 输出 '1,2,3'

在上面的例子中,toString()方法是内置属性,它可以将数组转换为字符串。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 对象的属性和方法4种不同的类型 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • js数组的基本操作(很全自己整理的)

    下面是详细讲解“JS数组的基本操作”的完整攻略: JS数组的基本操作 数组(Array)是JS中常用的数据类型之一,它可以用来存储一组数据,而且支持很多常用的操作,比如增、删、改、查等。 定义数组 定义数组的方法有两种: 1. 字面量 可以使用方括号([])来定义数组,里面可以放入多个元素,它们之间用逗号隔开。 let arr = [1, ‘hello’, …

    JavaScript 2023年5月18日
    00
  • js每隔两秒输出数组中的一项(实例)

    下面是讲解“js每隔两秒输出数组中的一项”的完整攻略,具体步骤如下: 1. 准备工作 在开始实现之前,我们需要明确几个问题: 哪个数组需要输出? 如何输出数组中的一项? 如何达到每隔两秒输出一项的效果? 针对以上问题,我们可以做如下解答: 这里假设我们要输出的数组是一个长度为n的一维数组 输出数组中的一项可以使用数组索引,即array[index]的形式来实…

    JavaScript 2023年5月27日
    00
  • javascript将异步校验表单改写为同步表单

    如果要将异步校验表单改写为同步表单,主要有以下几个步骤: 1. 禁用默认表单提交行为 表单默认的提交行为是异步提交,因此我们需要先禁用默认的表单提交行为。禁用表单提交行为的方式有两种: 在表单的submit事件中返回false 在表单的submit事件中返回false可以阻止表单的默认提交行为。代码如下: const form = document.quer…

    JavaScript 2023年6月10日
    00
  • js调用AJAX时Get和post的乱码解决方法

    这里是 “js调用AJAX时Get和post的乱码解决方法”的完整攻略,我们将分为以下几个步骤: 确认乱码问题 解决Get请求的乱码问题 解决Post请求的乱码问题 接下来详细讲解: 1. 确认乱码问题 首先在实际开发时遇到乱码问题时,需要确认到底是AJAX请求出现了乱码,还是服务器返回了乱码,这是解决问题的第一步。 可以通过Chrome浏览器的开发者工具,…

    JavaScript 2023年5月19日
    00
  • 实现JavaScript中继承的三种方式

    实现JavaScript中继承的三种方式包括:原型链继承、构造函数继承和组合继承。 1. 原型链继承 原型链继承是通过将子类的原型指向父类实例来实现继承的。代码示例如下: // 父类 function Person(name) { this.name = name; } Person.prototype.sayHello = function() { con…

    JavaScript 2023年5月27日
    00
  • ES6基础语法之对象介绍

    ES6基础语法之对象介绍 在ES6中,新的语法规范,对象展开操作符、对象方法、计算属性名以及内置Object属性等,在对象的定义与操作中起到了很大的作用。 对象基础 在ES6中,我们可以通过对象字面量的方式来创建一个对象,如下所示: let obj = { name: ‘张三’, age: 18, sex: ‘男’ }; ES6还引入了一个新的关键字let来…

    JavaScript 2023年5月27日
    00
  • JavaScript requestAnimationFrame动画详解

    下面是详细讲解“JavaScript requestAnimationFrame动画详解”的完整攻略。 一、什么是requestAnimationFrame requestAnimationFrame是一个用于浏览器动画渲染的API,它可以被用来优化动画循环的性能。相较于使用setTimeout或setInterval方法,使用requestAnimatio…

    JavaScript 2023年6月10日
    00
  • JavaScript引用类型RegExp基本用法详解

    JavaScript引用类型RegExp基本用法详解 概述 正则表达式(Regular Expression,简称RegExp)是用来匹配字符串中字符组合的模式。在JavaScript中,RegExp是一个对象,它可以通过字面量(literal)或构造函数(constructor)创建。 RegExp的主要作用是用来匹配字符串中特定模式的文本,常用于验证表单…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部