真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

javascript的oop怎么寫

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

成都創(chuàng)新互聯(lián)成立于2013年,先為柴桑等服務(wù)建站,柴桑等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為柴桑企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

  1. 原型(prototype)和構(gòu)造函數(shù)(constructor)

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

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.

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

  1. 類(class)

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

以下是一個(gè)使用類的例子:

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關(guān)鍵字定義了一個(gè)Person類,并在constructor方法中初始化了nameage屬性。然后,我們定義了一個(gè)sayHi方法,用于輸出一個(gè)招呼。最后,我們創(chuàng)建了兩個(gè)Person對象,并調(diào)用了它們的sayHi方法。

  1. 繼承(inheritance)

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

以下是使用prototype實(shí)現(xiàn)繼承的例子:

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.

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

以下是使用class實(shí)現(xiàn)繼承的例子:

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.

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

以上就是關(guān)于“javascript的oop怎么寫”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當(dāng)前題目:javascript的oop怎么寫
當(dāng)前路徑:http://weahome.cn/article/ippipd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部