Heim Web-Frontend js-Tutorial Ein vorläufiges Verständnis der objektorientierten Javascript-Fähigkeiten

Ein vorläufiges Verständnis der objektorientierten Javascript-Fähigkeiten

May 16, 2016 pm 03:33 PM
js 面向对象

Vorwort

Klassenbasierte Objekte: Wir alle wissen, dass ein offensichtliches Zeichen in objektorientierten Sprachen das Konzept von Klassen ist. Durch Klassen, die Vorlagen ähneln, können wir viele Objekte mit denselben Eigenschaften und Methoden erstellen. Allerdings gibt es in ECMAScript kein Klassenkonzept, daher unterscheidet es sich natürlich von Objekten in klassenbasierten Sprachen.

Objekte in js: Eine ungeordnete Sammlung von Attributen, die Grundwerte, Objekte und Funktionen umfassen können. Das heißt, ein Objekt in js ist eine Reihe von Werten in keiner bestimmten Reihenfolge. Jede Eigenschaft oder Methode des Objekts hat einen eigenen Namen und jeder Name entspricht einem Wert.

Objekt verstehen

So erstellen Sie Objekte

1 Der einfachste Weg, ein Objekt zu erstellen, besteht darin, eine Objektinstanz zu erstellen und ihr dann Eigenschaften und Methoden hinzuzufügen.

Zum Beispiel

  var person = new Object();
    person.name='谦龙';
    person.sex='男';
    person.sayNameAndSex=function(){
      console.log(this.name,this.sex)
    }
    person.sayNameAndSex(); // 谦龙 男
Nach dem Login kopieren

2 Verwenden Sie die Objektliteralform

Zum Beispiel

  var person={
    name:'谦龙',
    sex:'男',
    sayNameAndSex:function(){
      console.log(this.name,this.sex)
    }
  }
   person.sayNameAndSex(); // 谦龙 男
Nach dem Login kopieren

Attributtyp

ECMAScript verfügt über zwei Arten von Datenattributen: Datenattribute und Zugriffsattribute.

Datenattribute

Das Datenattribut enthält den Speicherort eines Datenwerts. An dieser Stelle können Werte gelesen und geschrieben werden. Es gibt vier Eigenschaften, die sein Verhalten beschreiben.

1.[[Konfigurierbar]]: Gibt an, ob das Attribut neu definiert werden kann, indem es durch Löschen gelöscht wird... Der Standardwert ist wahr

2.[[Enumerable]]: Gibt an, ob das Attribut über eine for-Schleife zurückgegeben werden kann ... Der Standardwert ist true

3.[[Schreibbar]]: Gibt an, ob der Wert des Attributs geändert werden kann ... Der Standardwert ist wahr

4.[[Wert]]: Gibt den Wert dieses Attributs an. Der Standardwert ist undefiniert

Um die Standardeigenschaften einer Eigenschaft zu ändern, müssen Sie die ES5-Methode Object.defineProperty() verwenden, die drei Parameter empfängt: das Objekt, in dem sich die Eigenschaft befindet, den Namen der Eigenschaft und ein Objekt, das die Eigenschaftseigenschaften beschreibt (konfigurierbar, aufzählbar, beschreibbar, Wert). Durch Festlegen einer oder mehrerer davon können die entsprechenden Eigenschaften

geändert werden

DEMO

var person={};
Object.defineProperty(person,'name',{
 configurable:false,//表示不允许通过delete删除属性
 writable:false,//表示不允许重写
 ennumerable:false,//表示不允许通过for in遍历
 value:'谦龙'//设置该对象中属性的值
})
person.name='谦龙2';//尝试重新设置 结果不生效
delete person.name;//尝试删除 结果不生效
for(var attr in person){
 console.log(person[attr]);// false
}
console.log(person.name);//谦龙
Nach dem Login kopieren

Hinweis: Nachdem „configurable“ auf „false“ gesetzt wurde, darf es nicht erneut auf „true“ geändert werden. Darüber hinaus sind beim Aufruf der Methode „Object.defineProperty()“ die Standardwerte „configurable“, „ennumerable“ und „writable“ „false“.

Accessor-Eigenschaften

Accessor-Eigenschaften enthalten keine Datenwerte. Sie enthalten ein Paar von Getter- und Setter-Funktionen (diese beiden Funktionen sind jedoch nicht erforderlich). Beim Lesen der Accessor-Eigenschaften wird diese Funktion für die Rückgabe von a verantwortlich sein gültig Beim Schreiben der Accessor-Eigenschaft wird die Setter-Funktion aufgerufen und der neue Wert übergeben. Diese Funktion ist für die Verarbeitung der Daten verantwortlich.

Accessor-Eigenschaften haben die folgenden Eigenschaften

[[konfigurierbar]] gibt an, ob Attribute durch Löschen gelöscht werden können, um neue Attribute zu definieren

[[enumerable]] gibt an, ob die zurückgegebenen Attribute durch eine for-in-Schleife

durchlaufen werden können

[[get]] Funktion, die beim Lesen von Eigenschaften aufgerufen wird, der Standardwert ist undefiniert

[[set]] Die Funktion, die beim Schreiben der Funktion aufgerufen wird. Der Standardwert ist undefiniert

Hinweis: Accessor-Eigenschaften können nicht direkt definiert werden und müssen über Object.defineProterty() definiert werden

DEMO

 var book={
 _year:2015, //这里的下划线是常见的记号,表示只能通过对象的方法才能访问的属性
 edition:1
}
Object.defineProperty(book,'year',{
 get:function(){
  return this._year; //即默认通过 book.year获取值的时候 返回的是 boot._year的值
 },
 set: function (value) {//在对 boot.year设置值的时候 默认调用的方法 对数据进行处理
  var _year=this._year;
  if(value > _year){
   this._year=value;
   this.edition+=value-_year;
  }
 }
})
book.year = 2016;
console.log(book.year,book.edition); // 2016 2
Nach dem Login kopieren

Mehrere Attribute definieren

Wir können einem Objekt über die Methode Object.defineProperties() in ES5 mehrere Eigenschaften hinzufügen. Diese Methode akzeptiert zwei Objektparameter. Der erste Parameter ist das Objekt, dessen Eigenschaften hinzugefügt und geändert werden sollen, und der zweite Parameter ist The Attribute entsprechen den Attributen, die im ersten Objekt hinzugefügt und geändert werden sollen.

DEMO

var book={};
Object.defineProperties(book,{
 _year:{
  value:2015,
  writable:true //注意这里设置成true 才可以 "写" 默认是false 
 },
 edition:{
  value:1,
  writable:true //注意这里设置成true 才可以 "写" 默认是false
 },
 year:{
  get:function(){
   return this._year;
  },
  set: function (value) {
   var _year=this._year;
   if(value > _year){
    this._year=value;
    this.edition+=value-_year;
   }
  }
 }
})
book.year=2016;
console.log(book.year,book.edition); // 2016 2
Nach dem Login kopieren

Eigenschaften von Objekteigenschaften lesen

Mit der Methode Object.getOwnPropertyDescriptor() in ES5 können Sie den Deskriptor einer bestimmten Eigenschaft abrufen.

Diese Methode empfängt zwei Parameter: das Objekt, in dem sich das Attribut befindet, und den Attributnamen des zu lesenden Deskriptors. Was zurückgegeben wird, ist ein Datenattribut, die zurückgegebenen Attribute sind konfigurierbar, aufzählbar, beschreibbar, Wert. Wenn es sich um ein Zugriffsattribut handelt, sind die zurückgegebenen Attribute konfigurierbar, aufzählbar, get, set

DEMO


var book={};
Object.defineProperties(book,{
 _year:{
  value:2015,
  writable:true
 },
 edition:{
  value:1,
  writable:true
 },
 year:{
  get:function(){
   return this._year;
  },
  set: function (value) {
   var _year=this._year;
   if(value > _year){
    this._year=value;
    this.edition+=value-_year;
   }
  }
 }
})
//对象遍历函数
function showAllProperties(obj){
 for(var attr in obj){
  console.log(attr+':'+obj[attr]);
 }
}
var descriptor= Object.getOwnPropertyDescriptor(book,'_year');//数据属性
var descriptor2= Object.getOwnPropertyDescriptor(book,'year');//访问器属性
showAllProperties(descriptor);
console.log('============================');
showAllProperties(descriptor2);
Nach dem Login kopieren
Das ist die obige Einführung in das vorläufige Verständnis von objektorientiertem JavaScript. Beachten Sie.

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wesentliche Tools für die Aktienanalyse: Lernen Sie die Schritte zum Zeichnen von Kerzendiagrammen mit PHP und JS Wesentliche Tools für die Aktienanalyse: Lernen Sie die Schritte zum Zeichnen von Kerzendiagrammen mit PHP und JS Dec 17, 2023 pm 06:55 PM

Wesentliche Tools für die Aktienanalyse: Lernen Sie die Schritte zum Zeichnen von Kerzendiagrammen in PHP und JS. Mit der rasanten Entwicklung des Internets und der Technologie ist der Aktienhandel für viele Anleger zu einer wichtigen Möglichkeit geworden. Die Aktienanalyse ist ein wichtiger Teil der Anlegerentscheidung, und Kerzendiagramme werden häufig in der technischen Analyse verwendet. Wenn Sie lernen, wie man Kerzendiagramme mit PHP und JS zeichnet, erhalten Anleger intuitivere Informationen, die ihnen helfen, bessere Entscheidungen zu treffen. Ein Candlestick-Chart ist ein technischer Chart, der Aktienkurse in Form von Candlesticks anzeigt. Es zeigt den Aktienkurs

Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Apr 03, 2024 am 11:55 AM

Die Technologie zur Gesichtserkennung und -erkennung ist bereits eine relativ ausgereifte und weit verbreitete Technologie. Derzeit ist JS die am weitesten verbreitete Internetanwendungssprache. Die Implementierung der Gesichtserkennung und -erkennung im Web-Frontend hat im Vergleich zur Back-End-Gesichtserkennung Vor- und Nachteile. Zu den Vorteilen gehören die Reduzierung der Netzwerkinteraktion und die Echtzeiterkennung, was die Wartezeit des Benutzers erheblich verkürzt und das Benutzererlebnis verbessert. Die Nachteile sind: Es ist durch die Größe des Modells begrenzt und auch die Genauigkeit ist begrenzt. Wie implementiert man mit js die Gesichtserkennung im Web? Um die Gesichtserkennung im Web zu implementieren, müssen Sie mit verwandten Programmiersprachen und -technologien wie JavaScript, HTML, CSS, WebRTC usw. vertraut sein. Gleichzeitig müssen Sie auch relevante Technologien für Computer Vision und künstliche Intelligenz beherrschen. Dies ist aufgrund des Designs der Webseite erwähnenswert

So erstellen Sie ein Aktien-Candlestick-Diagramm mit PHP und JS So erstellen Sie ein Aktien-Candlestick-Diagramm mit PHP und JS Dec 17, 2023 am 08:08 AM

So verwenden Sie PHP und JS zum Erstellen eines Aktienkerzendiagramms. Ein Aktienkerzendiagramm ist eine gängige technische Analysegrafik auf dem Aktienmarkt. Es hilft Anlegern, Aktien intuitiver zu verstehen, indem es Daten wie den Eröffnungskurs, den Schlusskurs, den Höchstkurs usw niedrigster Preis der Aktie. In diesem Artikel erfahren Sie anhand spezifischer Codebeispiele, wie Sie Aktienkerzendiagramme mit PHP und JS erstellen. 1. Vorbereitung Bevor wir beginnen, müssen wir die folgende Umgebung vorbereiten: 1. Ein Server, auf dem PHP 2. Ein Browser, der HTML5 und Canvas 3 unterstützt

PHP- und JS-Entwicklungstipps: Beherrschen Sie die Methode zum Zeichnen von Aktienkerzendiagrammen PHP- und JS-Entwicklungstipps: Beherrschen Sie die Methode zum Zeichnen von Aktienkerzendiagrammen Dec 18, 2023 pm 03:39 PM

Mit der rasanten Entwicklung der Internetfinanzierung sind Aktieninvestitionen für immer mehr Menschen zur Wahl geworden. Im Aktienhandel sind Kerzendiagramme eine häufig verwendete Methode der technischen Analyse. Sie können den sich ändernden Trend der Aktienkurse anzeigen und Anlegern helfen, genauere Entscheidungen zu treffen. In diesem Artikel werden die Entwicklungskompetenzen von PHP und JS vorgestellt, der Leser wird zum Verständnis des Zeichnens von Aktienkerzendiagrammen geführt und es werden spezifische Codebeispiele bereitgestellt. 1. Aktien-Kerzendiagramme verstehen Bevor wir uns mit dem Zeichnen von Aktien-Kerzendiagrammen befassen, müssen wir zunächst verstehen, was ein Kerzendiagramm ist. Candlestick-Charts wurden von den Japanern entwickelt

Entdecken Sie die objektorientierte Programmierung in Go Entdecken Sie die objektorientierte Programmierung in Go Apr 04, 2024 am 10:39 AM

Die Go-Sprache unterstützt die objektorientierte Programmierung durch Typdefinition und Methodenzuordnung. Es unterstützt keine traditionelle Vererbung, sondern wird durch Komposition implementiert. Schnittstellen sorgen für Konsistenz zwischen Typen und ermöglichen die Definition abstrakter Methoden. Praxisbeispiele zeigen, wie OOP zum Verwalten von Kundeninformationen verwendet wird, einschließlich Vorgängen zum Erstellen, Abrufen, Aktualisieren und Löschen von Kunden.

Erweiterte PHP-Funktionen: Best Practices in der objektorientierten Programmierung Erweiterte PHP-Funktionen: Best Practices in der objektorientierten Programmierung Jun 05, 2024 pm 09:39 PM

Zu den OOP-Best Practices in PHP gehören Namenskonventionen, Schnittstellen und abstrakte Klassen, Vererbung und Polymorphismus sowie Abhängigkeitsinjektion. Zu den praktischen Fällen gehören: Verwenden des Lagermodus zum Verwalten von Daten und Verwenden des Strategiemodus zum Implementieren der Sortierung.

Die Beziehung zwischen js und vue Die Beziehung zwischen js und vue Mar 11, 2024 pm 05:21 PM

Die Beziehung zwischen js und vue: 1. JS als Eckpfeiler der Webentwicklung; 2. Der Aufstieg von Vue.js als Front-End-Framework; 3. Die komplementäre Beziehung zwischen JS und Vue; Vue.

Analyse der objektorientierten Funktionen der Go-Sprache Analyse der objektorientierten Funktionen der Go-Sprache Apr 04, 2024 am 11:18 AM

Die Go-Sprache unterstützt objektorientierte Programmierung, definiert Objekte über Strukturen, definiert Methoden mithilfe von Zeigerempfängern und implementiert Polymorphismus über Schnittstellen. Objektorientierte Funktionen ermöglichen die Wiederverwendung, Wartbarkeit und Kapselung von Code in der Go-Sprache, es gibt jedoch auch Einschränkungen wie das Fehlen traditioneller Konzepte von Klassen und Vererbung sowie Methodensignaturumwandlungen.

See all articles