Javascript 面向对象 对象(Object)

下面是 Javascript 面向对象 对象(Object)的完整攻略:

理解概念

JavaScript 的面向对象和其他语言很相似,都是基于类和实例的概念。但是 JavaScript 中没有类,而是通过对象来实现面向对象编程。

对象可以看作是一个属性的集合,每个属性都是由键值对(key-value pair)组成,键名是字符串,键值可以是任意的 JavaScript 值,包括函数。对象可以通过字面量、构造函数等方式创建。

示例 1:

// 对象字面量
const person = {
  name: '张三',
  age: 20,
  gender: '男',
  sayHello: function () {
    console.log('你好,我叫' + this.name + ',今年' + this.age + '岁。');
  }
};

// 构造函数
function Person(name, age, gender) {
  this.name = name;
  this.age = age;
  this.gender = gender;
  this.sayHello = function () {
    console.log('你好,我叫' + this.name + ',今年' + this.age + '岁。');
  }
}

const person2 = new Person('李四', 22, '男');

访问对象属性

访问对象属性有两种方式:点表示法和方括号表示法。使用点表示法时,需要知道属性的名称。使用方括号表示法时,可以动态指定属性的名称。

示例 2:

console.log(person.name); // '张三'
console.log(person['age']); // 20

const propName = 'gender';
console.log(person[propName]); // '男'

对象方法

对象可以包含方法,方法就是对象中的一个属性,它的值是一个函数。在方法内部,this 表示当前对象。

示例 3:

person.sayHello(); // 输出:'你好,我叫张三,今年20岁。'

Person.prototype.sayHi = function () {
  console.log('Hi,我是' + this.name + '。');
}

person2.sayHi(); // 输出:'Hi,我是李四。'

对象的扩展和属性描述符

JavaScript 允许在现有对象上添加新属性或方法,也可以修改或删除已有属性。

属性描述符是一个对象,为属性提供附加的元数据,包括值、可枚举性、可配置性、可读性和可写性等。可以使用 Object.defineProperty 函数来创建或修改属性描述符。

示例 4:

Object.defineProperty(person, 'phone', {
  value: '123456789',
  writable: false, // 不可修改
  enumerable: false, // 不可枚举
  configurable: false // 不可删除
});

person.phone = '987654321'; // 无效
console.log(person.phone); // '123456789'

delete person.phone; // 无效
console.log(person.phone); // '123456789'

总结

对象是 JavaScript 中最重要的数据类型之一,它是面向对象编程的基础。理解对象的概念、访问属性和方法、属性描述符等内容,对于学习 JavaScript 面向对象编程非常重要。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript 面向对象 对象(Object) - Python技术站

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

相关文章

  • JS原生数据双向绑定实现代码

    JS原生数据双向绑定是实现MVVM(Model-View-ViewModel)框架的重要基础,该框架可以将数据和页面进行解耦,提高开发效率和代码可维护性。下面是JS原生数据双向绑定的实现代码攻略: 1. 实现数据绑定 数据绑定是指将数据与页面元素建立关联,当数据发生改变时,页面元素也会自动更新。我们可以使用Object.defineProperty()方法实…

    JavaScript 2023年6月10日
    00
  • javascript引用类型之时间Date和数组Array

    接下来我会给你详细讲解JavaScript引用类型之时间Date和数组Array的完整攻略。 JavaScript引用类型之时间Date 在JavaScript中,时间是以Date对象的形式存在的。我们可以使用Date对象表示一个日期,也可以使用它来执行与日期相关的操作。 创建Date对象 创建一个Date对象的方式有以下三种: 使用new Date()构造…

    JavaScript 2023年5月27日
    00
  • JavaScript中字符串与Unicode编码互相转换的实现方法

    下面是JavaScript中字符串与Unicode编码互相转换的实现方法的完整攻略。 字符串与Unicode编码互相转换的方法 在JavaScript中,字符串与Unicode编码可以互相转换。字符串是由Unicode编码组成的序列,每个字符对应一个Unicode编码。Unicode编码可以表示几乎所有的字符,包括各种语言的字母、数字、符号、标点符号、表情符…

    JavaScript 2023年5月20日
    00
  • JS求解三元一次方程组值的方法

    JS求解三元一次方程组值的方法 解三元一次方程组即为求解下列形式的方程: a1*x + b1*y + c1*z = d1 a2*x + b2*y + c2*z = d2 a3*x + b3*y + c3*z = d3 其中,x、y、z分别为未知数,其他为已知数(系数和常数)。解方程的过程就是求出未知数x、y、z的值。 利用矩阵求解 其中,最通用的 metho…

    JavaScript 2023年5月28日
    00
  • JS获取当前日期和时间的简单实例

    JS获取当前日期和时间的简单实例,可以使用内置的Date对象来实现。 第一步:创建Date对象 要获取当前日期和时间,我们首先需要创建一个Date对象。可以使用以下代码来创建: let currentDate = new Date(); 在上面的代码中,new关键字创建了一个新的Date对象,并将其分配给变量currentDate。这将创建一个包含当前日期和…

    JavaScript 2023年5月27日
    00
  • javascript Math.random()随机数函数

    下面是关于JavaScript中 Math.random() 随机数函数的详细讲解: 什么是Math.random()函数? Math.random() 是JavaScript的内置函数之一,用于生成一个伪随机数,范围在0到1之间(包含0但不包含1)。 在使用 Math.random()生成随机数时,我们经常会通过一些算法(比如乘以所需随机数范围,然后用 M…

    JavaScript 2023年5月27日
    00
  • js简单设置与使用cookie的方法

    以下是详细讲解“js简单设置与使用cookie的方法”的完整攻略: 设置与使用cookie的方法 什么是cookie cookie是存储在客户端浏览器上的一个小文件,用于保存一些用户数据,以便在下次访问同一站点时使用。 设置cookie 可以使用JavaScript中的document.cookie属性来设置cookie。 下面是设置一个名为username…

    JavaScript 2023年6月11日
    00
  • JavaScript中的作用域链和闭包

    下面为你详细讲解”JavaScript中的作用域链和闭包”。 什么是作用域链? 作用域链定义了变量和函数在定义时能够访问的范围,也即可以被访问的区域。在JavaScript中,函数作用域是唯一的作用域单元。当函数被创建时,它的作用域链是由当前函数的内部作用域和外部函数的作用域链组成的。这个过程会逐级向上找到全局作用域,直至找到全局作用域为止,形成了作用域链。…

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