Javascript 构造函数详解

yizhihongxing

Javascript 构造函数详解

Javascript中的构造函数是一种用于创建对象的特殊函数,它可以通过使用关键字 new 来调用,并返回新创建的实例对象。

构造函数定义

构造函数的定义形式与普通函数相同,不同的是构造函数的名称通常首字母大写,以便于区分。

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

在构造函数中使用 this 关键字可以将属性绑定到新创建的对象上。

对象实例化

通过使用 new 关键字调用构造函数可以创建新的对象实例。

var person1 = new Person("Tom", 18);
var person2 = new Person("Jerry", 20);

上面代码中,分别创建了 person1person2 两个实例对象,它们都拥有 nameage 两个属性。

原型

在Javascript中,每个对象都有一个指向原型(prototype)的链接。原型是一个对象,包含对象的属性和方法。每个通过构造函数创建的对象实例都共享同一个原型对象。

可以通过给构造函数的 prototype 属性添加属性和方法,从而为所有实例共享它们。

Person.prototype.sayHello = function() {
  console.log("Hello, my name is " + this.name + ", and I am " + this.age + " years old.");
}

person1.sayHello(); // 输出:Hello, my name is Tom, and I am 18 years old.
person2.sayHello(); // 输出:Hello, my name is Jerry, and I am 20 years old.

上述代码中,为 Person 构造函数的原型对象添加了 sayHello 方法,该方法可以输出当前对象的信息。新创建的 person1person2 实例对象都拥有该方法,并可以输出它们的信息。

示例说明

下面是一个使用构造函数创建“学生”对象的实例。

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

Student.prototype.sayScore = function() {
  console.log("My score is " + this.score + ".");
}

var student1 = new Student("小明", 18, 90);
var student2 = new Student("小红", 20, 95);

console.log(student1.name); // 输出:小明
student2.sayScore(); // 输出:My score is 95.

上述代码中,创建了 Student 构造函数,每个学生对象都拥有 nameagescore 三个属性,并且共享 sayScore 方法。新创建的 student1student2 实例对象分别设置了不同的属性值,并可以输出它们的信息。同时也可以通过 sayScore 方法输出它们的成绩。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript 构造函数详解 - Python技术站

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

相关文章

  • $()JS小技巧

    $()JS小技巧 在前端开发中,我们经常需要对DOM元素进行操作,而jQuery库可以帮助我们更方便地实现这些操作。其中一个最常用的方法是$(),它可以获取DOM元素并对其进行操作。 基本语法 $()是jQuery的一种基本语法,它可以通过选择器来选取HTML元素,并返回一个jQuery对象。基本语法如下: $(selector).action() 其中的s…

    JavaScript 2023年5月18日
    00
  • js保存当前路径(cookies记录)

    要保存当前路径,可以使用浏览器的 cookies 功能。cookies 可以将一些数据保存在用户端,当用户再次访问网站时,网站可以获取 cookies 中保存的数据。因此,我们可以将当前路径存储在 cookies 中,以便用户下次访问时可以直接跳转到上次访问的路径。 下面是实现此功能的步骤: 1. 引入 js-cookie 库 我们可以使用 js-cooki…

    JavaScript 2023年6月11日
    00
  • ES6所改良的javascript“缺陷”问题

    ES6是JavaScript的一项重大更新,带来很多新的特性和增强,使得JavaScript成为一门更加强大、易读且易理解的编程语言。然而,ES6改良了一些JavaScript的一些缺陷,下面详细讲解一些常见的问题以及解决方案。 1. 变量声明的问题 在ES5及以前,声明变量只能使用var关键字,这导致了一些问题。例如,变量提升会使得代码变得难以理解;变量声…

    JavaScript 2023年6月10日
    00
  • JavaScript中的闭包介绍

    一、什么是闭包 闭包是指能够访问其它函数内部变量的函数。在 JavaScript 中,函数是一等公民,即函数可以作为对象传递,也可以作为返回值返回。在函数中定义的变量也可以作为闭包的一部分,因此,当一个函数返回另一个函数时,闭包就会形成。 闭包的主要特点是可以访问外部函数作用域内的变量,即使外部函数已经返回了,这些变量的值也可以被访问和修改,因为这些变量仍然…

    JavaScript 2023年6月10日
    00
  • JavaScript中的内置对象介绍

    下面是关于JavaScript内置对象的详细介绍: 什么是JavaScript内置对象 JavaScript内置对象指的是在JavaScript语言中可以直接使用的对象,不需要额外的引入或安装。这些内置对象是JavaScript语言的一部分,可以为开发者提供简单、高效的编程方法。 常用的JavaScript内置对象 1.全局对象(Global Object)…

    JavaScript 2023年5月27日
    00
  • 深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例

    深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例 在JavaScript中,编码与解码字符串是非常常见的操作。对于URL、HTML等特殊字符的处理,我们通常会使用escape()、encodeURI()、encodeURIComponent()这几个函数,它们虽然都是编码函数,但是处理的范围和方式各不相同…

    JavaScript 2023年5月19日
    00
  • js数组forEach实例用法详解

    JavaScript Array forEach() 方法详解 JavaScript中的forEach()函数是用于数组循环的方法,可以遍历数组的每个元素并对其进行操作。该方法在ECMAScript 5 (ES5)中被引入,不仅适用于所有数组,而且可以处理类数组对象。 语法 forEach() 方法有两个参数,第一个是一个回调函数,第二个是可选的this值。…

    JavaScript 2023年5月27日
    00
  • 关于JS中的作用域中的问题思考分享

    关于JS中的作用域问题,我可以给你一个完整的攻略。以下是具体内容: 什么是作用域? 在JavaScript中,作用域指的是变量和函数可访问的区域。它主要分为全局作用域和局部作用域。 全局作用域:在代码的任何地方都可以访问,并且被定义在全局作用域中的变量和函数可以在任何地方调用。 局部作用域:这种作用域被定义在函数中,只允许在函数内部访问。局部作用域可以帮助提…

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