JS面向对象编程基础篇(一) 对象和构造函数实例详解

2023-12-08前端开发
3

那么让我们来详细讲解一下“JS面向对象编程基础篇(一) 对象和构造函数实例详解”的完整攻略。

什么是对象和构造函数

对象是 JavaScript 中一种复合数据类型,由属性和方法组成,用于存储和操作数据。可以通过对象字面量或构造函数来创建。

构造函数是创建对象的一种特殊方式。它是一种函数,当用 new 关键字调用时,它将返回一个新的对象,并通过原型继承关联到构造函数的 prototype 属性。特别地,如果构造函数没有 return 语句,或者返回的不是一个对象类型,那么 new 关键字返回的对象就是这个构造函数创建的对象本身。

下面是一个创建对象的示例:

const person = {
  name: '张三',
  age: 18,
  sayHello() {
    console.log(`大家好,我是${this.name}`);
  }
};

上面的代码中,person 是一个对象,它有两个属性 nameage,以及一个方法 sayHellothis 关键字引用了当前的对象,所以当 sayHello 方法被调用时,this.name 将返回 person.name 的值。

下面是一个使用构造函数创建对象的示例:

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.sayHello = function() {
    console.log(`大家好,我是${this.name}`);
  }
}

const person = new Person('张三', 18);

上面的代码中,我们定义了一个 Person 构造函数,创建了一个 person 对象,并将其赋值给了变量 person。这个对象有两个属性 nameage,以及一个方法 sayHello,其实现方式与前面例子中创建的对象的方法相同。但是与字面量方式不同的是,这个方法是通过 Person 构造函数的实例创建的。

对象和构造函数的详解

对象可以有一些内置的方法来访问或修改它的属性,例如:

const person = {
  name: '张三',
  age: 18,
  sayHello() {
    console.log(`大家好,我是${this.name}`);
  }
};

// 使用点语法访问对象属性
console.log(person.name); // 输出:"张三"

// 使用方括号语法访问对象属性
console.log(person['age']); // 输出:18

// 修改对象属性
person.age = 20;
console.log(person.age); // 输出:20

// 调用对象方法
person.sayHello(); // 输出:"大家好,我是张三"

构造函数在创建实例时,可以使用 this 关键字来引用实例对象。在构造函数中为实例对象添加属性和方法时,直接使用 this 就可以了。下面的示例展示了如何使用构造函数来创建对象,并访问和修改它们的属性:

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.sayHello = function() {
    console.log(`大家好,我是${this.name}`);
  }
}

const person1 = new Person('张三', 18);
const person2 = new Person('李四', 20);

// 访问实例的属性
console.log(person1.name); // 输出:"张三"
console.log(person1.age); // 输出:18

// 修改实例的属性
person1.age = 22;
console.log(person1.age); // 输出:22

// 调用实例的方法
person1.sayHello(); // 输出:"大家好,我是张三"

示例说明

示例1:使用对象字面量创建对象

下面的示例展示了如何使用对象字面量来创建一个 person 对象,包括添加属性和方法,并访问和修改它们:

const person = {
  name: '张三',
  age: 18,
  sayHello() {
    console.log(`大家好,我是${this.name}`);
  }
};

console.log(person.name); // 输出:"张三"
console.log(person.age); // 输出:18
person.age = 20;
console.log(person.age); // 输出:20
person.sayHello(); // 输出:"大家好,我是张三"

示例2:使用构造函数创建对象

下面的示例展示了如何使用 Person 构造函数来创建一个 person 对象,包括添加属性和方法,并访问和修改它们:

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.sayHello = function() {
    console.log(`大家好,我是${this.name}`);
  }
}

const person = new Person('张三', 18);

console.log(person.name); // 输出:"张三"
console.log(person.age); // 输出:18
person.age = 20;
console.log(person.age); // 输出:20
person.sayHello(); // 输出:"大家好,我是张三"

以上就是关于“JS面向对象编程基础篇(一) 对象和构造函数实例详解”的完整攻略,希望对你有所帮助。

The End

相关推荐

layui实现图片上传成功后回显点击放大图片功能
layui实现图片上传成功后回显点击放大图片功能,html代码部分: !-- html代码--div class="layui-form-item" label class="layui-form-label"上传图片/label div class="layui-input-block" button type="button" class="layui-btn" id="license-auth-letter-...
2025-09-06 前端开发
202

Layui实现数据表格中鼠标悬停图片放大离开时恢复原图
Layui实现数据表格中鼠标悬停图片放大离开时恢复原图的效果,最终效果如下图所示: 实现代码如下,在done函数中调用hoverOpenImg方法 var tableIns = window.demoTable = table .render({ elem : '#idTest', id : 'idTest', url : '/postData', //width : 150...
2025-09-04 前端开发
112

layui点击文本输入框调起弹出选择框并选择内容的两种方法参考
我们在用到layui时候,需要点击文本输入框调起弹出选择框并选择内容,这个要怎么操作呢?以下两种方法可以参考: 1、点击名称,弹出信息弹框,选择表格中的某一行,实现效果如下: html页面代码 !--计量器具弹出层-- div id="equipment" lay-filter="equipmen...
2025-09-02 前端开发
167

网站部署https后百度地图不显示问题
https的网站如果引用百度地图,会出现加载不了的问题,这是因为涉及到跨域问题,网站是https的,但是引用百度地图的是http的,这个要怎么操作呢? 比如我引用的地址:http://api.map.baidu.com/api?v=2.0ak=AK显示 后来看了一下,少了一个s=1字段,加一下s=1...
2025-07-28 前端开发
139

微信小程序实现点击复制功能和手机拨打电话功能
做小程序项目的时候,客户提了一个功能需求优化,就是长按文字需要复制全部内容,因为有的手机支持全选复制,有的手机不支持全选复制。 通过设置系统剪贴板的内容和获取系统剪贴板的内容实现复制功能 html相关代码: van-field value="{{form.contactPhone}}"...
2025-07-02 前端开发
78

js拖拽排序插件Sortable.js如何使用
由于项目功能需要,要实现对table中的行实现拖拽排序功能,找来找去发现Sortable.js能很好的满足这个需求,而且它还是开源的,于是乎就开始学习使用Sortable.js 特点 轻量级但功能强大 移动列表项时有动画 支持触屏设备和大多数浏览器(IE9及以下除外) 支持...
2025-06-12 前端开发
161