中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript的oop怎么寫

發布時間:2023-05-16 16:38:23 來源:億速云 閱讀:113 作者:iii 欄目:web開發

這篇“javascript的oop怎么寫”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“javascript的oop怎么寫”文章吧。

  1. 原型(prototype)和構造函數(constructor)

在JavaScript中,一個對象的屬性和方法可以通過原型來共享,而構造函數則用于創建一個新對象并初始化其屬性。以下是一個使用構造函數和原型的簡單例子:

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

Person.prototype.sayHi = function() {
  console.log("Hi, my name is " + this.name + " and I'm " + this.age + " years old.");
}

var person1 = new Person("John", 30);
var person2 = new Person("Mary", 25);

person1.sayHi(); // Hi, my name is John and I'm 30 years old.
person2.sayHi(); // Hi, my name is Mary and I'm 25 years old.

在上面的例子中,我們定義了一個Person構造函數,初始化了nameage屬性。然后,我們使用Person.prototype給每個Person對象添加了一個sayHi方法,這個方法可以被所有Person對象共享。最后,我們創建了兩個Person對象,并調用了它們的sayHi方法。

  1. 類(class)

在ES6中,JavaScript引入了類的概念,并使用關鍵字class來實現。類提供了一種更簡潔、更易于理解的語法,用于定義對象。

以下是一個使用類的例子:

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  
  sayHi() {
    console.log("Hi, my name is " + this.name + " and I'm " + this.age + " years old.");
  }
}

let person1 = new Person("John", 30);
let person2 = new Person("Mary", 25);

person1.sayHi(); // Hi, my name is John and I'm 30 years old.
person2.sayHi(); // Hi, my name is Mary and I'm 25 years old.

在上面的例子中,我們使用class關鍵字定義了一個Person類,并在constructor方法中初始化了nameage屬性。然后,我們定義了一個sayHi方法,用于輸出一個招呼。最后,我們創建了兩個Person對象,并調用了它們的sayHi方法。

  1. 繼承(inheritance)

在OOP中,繼承是指從一個已有的對象中派生出一個新的對象,新對象繼承了原來的對象的屬性和方法。在JavaScript中,繼承可以通過使用prototypeclass來實現。

以下是使用prototype實現繼承的例子:

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

Person.prototype.sayHi = function () {
  console.log("Hi, my name is " + this.name + " and I'm " + this.age + " years old.");
}

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

Student.prototype = Object.create(Person.prototype);
Student.prototype.constructor = Student;
Student.prototype.sayMajor = function() {
  console.log("My major is " + this.major + ".");
}

let person1 = new Person("John", 30);
let student1 = new Student("Mary", 25, "Computer Science");

person1.sayHi(); // Hi, my name is John and I'm 30 years old.
student1.sayHi(); // Hi, my name is Mary and I'm 25 years old.
student1.sayMajor(); // My major is Computer Science.

在上面的例子中,我們定義了一個Person構造函數,在原型中添加了sayHi方法。另外,我們定義了一個Student構造函數,通過使用call方法調用了Person構造函數來初始化nameage屬性,并添加了一個major屬性。然后,我們使用Object.create方法創建了一個Person.prototype的副本,并將其指定給Student.prototype,以便Student對象可以繼承Person對象的屬性和方法。最后,我們定義了一個sayMajor方法,用于輸出學生的專業。最終,我們創建了一個Person對象和一個Student對象,并調用了他們的方法。

以下是使用class實現繼承的例子:

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  
  sayHi() {
    console.log("Hi, my name is " + this.name + " and I'm " + this.age + " years old.")
  }
}

class Student extends Person {
  constructor(name, age, major) {
    super(name, age);
    this.major = major;
  }
  
  sayMajor() {
    console.log("My major is " + this.major + ".");
  }
}

let person1 = new Person("John", 30);
let student1 = new Student("Mary", 25, "Computer Science");

person1.sayHi(); // Hi, my name is John and I'm 30 years old.
student1.sayHi(); // Hi, my name is Mary and I'm 25 years old.
student1.sayMajor(); // My major is Computer Science.

在上面的例子中,我們定義了一個Person類,在constructor方法中初始化了nameage屬性,并在sayHi方法中輸出了一個招呼。然后,我們使用extends關鍵字創建了一個Student類,并使用super關鍵字調用了Person類的constructor方法來初始化nameage屬性,并添加了一個major屬性。最后,我們定義了一個sayMajor方法,用于輸出學生的專業。最終,我們創建了一個Person對象和一個Student對象,并調用了他們的方法。

以上就是關于“javascript的oop怎么寫”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

布拖县| 河间市| 固原市| 新乡市| 恩平市| 乃东县| 上高县| 太仓市| 昌都县| 尤溪县| 渭源县| 富阳市| 洛南县| 敖汉旗| 贵港市| 湾仔区| 句容市| 枝江市| 丽江市| 深水埗区| 民权县| 沿河| 栾城县| 泰州市| 玉田县| 克东县| 鸡泽县| 论坛| 大邑县| 卫辉市| 恩施市| 宜兴市| 鞍山市| 甘谷县| 南部县| 镇赉县| 舟山市| 陕西省| 汉川市| 马龙县| 南通市|