Rumah  >  Artikel  >  hujung hadapan web  >  apa itu javascript uber

apa itu javascript uber

藏色散人
藏色散人asal
2021-11-01 15:31:481596semak imbas

javascript uber ialah kaedah yang digunakan dalam javascript awal untuk membenarkan kaedah tertentu memanggil kelas induk Kaedah uber adalah serupa dengan super Java.

apa itu javascript uber

Persekitaran pengendalian artikel ini: sistem Windows 7, versi JavaScript 1.8.5, komputer DELL G3.

Apakah itu javascript uber?

Dalam JavaScript awal, kaedah uber adalah serupa dengan super Java, yang membenarkan kaedah untuk memanggil kaedah kelas induk. Douglas Crockford menggunakan bahasa Jerman "über", yang bermaksud sesuatu yang serupa dengan super, untuk mengelakkan konflik dengan perkataan terpelihara.

Walau bagaimanapun, Crockford juga berkata bahawa idea super adalah sangat penting dalam corak reka bentuk klasik, tetapi ia tidak diperlukan dalam prototaip dan corak reka bentuk fungsi JavaScript. Warisan Klasik dalam JavaScript Bahasa berorientasikan objek klasik biasanya mempunyai sintaks khas untuk mengakses kelas induk (kelas super), supaya kaedah subkelas boleh menggunakan kaedah kelas induk, dan kaedah subkelas dan induk. kelas mempunyai nama yang sama. Dalam JavaScript moden, tiada sintaks khas seperti itu boleh melaksanakan fungsi ini, tetapi ia lebih menyusahkan. Pertimbangkan contoh berikut:

// inheritance helper
function extend(Child, Parent) {
  var F = function () {};
  F.prototype = Parent.prototype;
  Child.prototype = new F();
  Child.prototype.constructor = Child;
  Child.uber = Parent.prototype;
}
// define -> augment
function Shape() {}
Shape.prototype.name = 'Shape';
Shape.prototype.toString = function () {
  return this.constructor.uber
  ? this.constructor.uber.toString() + ', ' + this.name
  : this.name;
};
// define -> inherit -> augment
function TwoDShape() {}
extend(TwoDShape, Shape);
TwoDShape.prototype.name = '2D shape';
// define
function Triangle(side, height) {
  this.side = side;
  this.height = height;
}
// inherit
extend(Triangle, TwoDShape);
// augment
Triangle.prototype.name = 'Triangle';
Triangle.prototype.getArea = function () {
  return this.side * this.height / 2;
};

Input dalam Konsol:

var my = new Triangle(5, 10);
my.toString();

Output: "Bentuk, bentuk 2D, Segitiga"

Hierarki terbitan ialah: Bentuk -> TwoDShape -> fungsi Segitiga

merangkum kod yang diwarisi.

Peranan pembina sementara F(): apabila atribut subkelas berubah, atribut kelas induk tidak diubah.

atribut uber: menunjuk kepada prototaip kelas induk.

Dalam kaedah toString(), semak sama ada prototaip kelas induk pembina wujud Jika ia wujud, panggil kaedah toString()nya, dengan itu menyedari memanggil kaedah kelas induk dalam subkelas.

Kajian yang disyorkan: "Tutorial Asas JavaScript"

Atas ialah kandungan terperinci apa itu javascript uber. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn