javaScript封装的各种写法

yizhihongxing

JavaScript中的封装是面向对象编程中的重要概念之一,主要目的是为了保护数据和方法,防止被其他代码随意篡改。下面我会详细讲解JavaScript封装的各种写法。

JavaScript封装的各种写法

1. 构造函数

构造函数是创建对象的基础,可以使用函数封装对象的属性和方法,我们可以用this关键字指向当前对象,来实现对属性和方法的操作。下面是一个示例:

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.sayHello = function() {
    console.log('Hello, I am ' + this.name);
  }
}

在此示例中,我们定义了一个Person构造函数,在构造函数中,我们通过this来定义了nameage这两个属性,以及sayHello这个方法。当我们使用new关键字创建一个新对象时,就可以访问这些属性和方法了:

let person = new Person('Tom', 20);
console.log(person.name); // Tom
console.log(person.age); // 20
person.sayHello(); // Hello, I am Tom

2. 原型

原型是每个JavaScript对象都有的一个属性,它是一个指针,指向该对象的原型对象。原型对象可以包含对象的属性和方法,这些属性和方法会被该对象所继承。下面是一个示例:

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

Person.prototype.sayHello = function() {
  console.log('Hello, I am ' + this.name);
}

let person = new Person('Tom', 20);
console.log(person.name); // Tom
console.log(person.age); // 20
person.sayHello(); // Hello, I am Tom

在此示例中,我们将sayHello方法封装在了Person.prototype中,这样做的好处是在多个实例中共用同一个方法,节省了内存。当我们访问person.sayHello()时,JavaScript会自动沿着原型链向上查找,从而找到Person.prototype中的sayHello方法。

示例

下面是一个实战示例,展示如何通过构造函数和原型结合的方式封装一个可以创建模态框的类:

function Modal(options) {
  // 构造函数中的属性
  this.title = options.title; // 标题
  this.content = options.content; // 内容
  this.modalContainer = null; // 模态框容器
}

// 构造函数中的方法
Modal.prototype.init = function() {
  // 创建模态框容器
  this.modalContainer = document.createElement('div');
  // 模态框内容
  let modalContent = document.createElement('div');
  modalContent.innerHTML = this.content;

  // 模态框标题,关闭按钮
  let modalTitle = document.createElement('div');
  modalTitle.innerHTML = this.title;
  let closeButton = document.createElement('button');
  closeButton.innerText = '关闭';
  // 点击关闭按钮关闭模态框
  closeButton.addEventListener('click', function() {
    document.body.removeChild(this.modalContainer);
  }.bind(this))

  // 添加模态框内容、标题和关闭按钮
  this.modalContainer.appendChild(modalTitle);
  this.modalContainer.appendChild(modalContent);
  this.modalContainer.appendChild(closeButton);
  // 将模态框容器添加到body中
  document.body.appendChild(this.modalContainer);
};

// 创建模态框
let modal = new Modal({
  title: '提示',
  content: '这是一个模态框'
});
modal.init();

在此示例中,我们通过构造函数创建了一个Modal类,通过原型的方式为该类添加了init方法,用于创建模态框。该示例展示了如何通过构造函数和原型结合的方式进行封装,以及如何通过绑定函数内部的this指向对象的方式,来解决常见的作用域问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javaScript封装的各种写法 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 简化版的vue-router实现思路详解

    简化版的vue-router实现思路详解 前言 Vue.js 是一个非常流行的前端框架,其专注于视图层的渲染。而 Vue-router 是 Vue.js 的一个关键插件,它管理着 Vue.js 应用程序中的路由,可以帮助我们更好地管理前端路由。在本篇文章中,我将为大家介绍一个简化版的 Vue-router 实现思路。 设计思路 Vue-router 的设计思…

    JavaScript 2023年6月11日
    00
  • js保留两位小数方法总结

    让我来详细讲解一下“js保留两位小数方法总结”的完整攻略。 一、概述 在进行数据处理的过程中,我们经常需要对数字进行保留小数位的操作。在Javascript中,保留两位小数的方法有多种。接下来就来总结一下这些常用的方法。 二、toFixed()方法 使用toFixed()方法可以将数字保留到指定的小数位数,并且返回一个字符串类型的结果。 let num = …

    JavaScript 2023年5月27日
    00
  • javascript 中对象的继承〔转贴〕

    以下是javascript中对象的继承攻略: 1. 继承的概念 在Javascript中,可以通过继承的方式来实现代码的复用性。继承是一种以已有类(或对象)为基础,创建新类(或对象)的技术,新创建的类或对象具有已有类(或对象)的属性和行为。 2. 原型链继承 原型链继承是Javascript中最基础的继承方式,它的原理就是通过让一个构造函数的原型指向另一个构…

    JavaScript 2023年5月27日
    00
  • javascript先序遍历DOM树的方法

    关于JavaScript先序遍历DOM树的方法,以下是详细讲解的完整攻略: 什么是DOM树? 首先我们需要了解什么是DOM树,DOM(Document Object Model)树是浏览器用来解析HTML文档时,生成的一颗树状结构。它包含了HTML标签、文本、注释等所有节点,每个节点都是一个实际存在的JS对象。DOM树中的节点按照层级关系排列,我们可以通过J…

    JavaScript 2023年6月10日
    00
  • 详解JavaScript中Math内置对象基本方法的使用

    详解JavaScript中Math内置对象基本方法的使用 什么是Math对象 JavaScript中的Math对象是一个内置对象。它包含了一些常用的数学计算方法,如取绝对值、四舍五入、三角函数等。我们可以使用Math对象的方法来进行计算。 常用的Math方法 Math.ceil() 向上取整 该方法用于将一个数值向上取整,即将小数部分舍入为最接近的整数。 l…

    JavaScript 2023年5月28日
    00
  • js中将字符串转换成json的三种方式

    将字符串转换成 JSON 对象,在 JavaScript 中实际上有三种方式。 方法一:使用 JSON.parse() JSON.parse() 方法将 JSON 格式的字符串转换成 JavaScript 对象。 let jsonString = ‘{"name": "Tom", "age": 20…

    JavaScript 2023年5月27日
    00
  • JavaScript中的索引数组、关联数组和静态数组、动态数组讲解

    JavaScript中常见的数组类型主要有四种:索引数组、关联数组、静态数组和动态数组。 索引数组 索引数组是最基本的数组类型,其下标由数字表示,从0开始依次递增。 创建索引数组可以通过以下方式: const arr = [1, 2, 3]; 访问和修改索引数组中的元素可以通过下标进行: const arr = [1, 2, 3]; arr[0]; // 返…

    JavaScript 2023年5月27日
    00
  • js判断一个对象是数组(函数)的方法实例

    下面是关于“js判断一个对象是数组(函数)的方法实例”的完整攻略。 判断一个对象是数组的方法 在 JavaScript 中判断一个对象是否为数组的方法有很多种,下面介绍两种比较常用的方法。 方法一:使用 Array.isArray() 使用 Array.isArray() 可以判断一个对象是否为数组,同时可以避免使用 typeof 判断的弊端。 示例代码如下…

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