Heim > Web-Frontend > Front-End-Fragen und Antworten > Was sind öffentliche und private Methoden in Javascript?

Was sind öffentliche und private Methoden in Javascript?

青灯夜游
Freigeben: 2022-02-07 14:50:37
Original
2631 Leute haben es durchsucht

In JavaScript beziehen sich öffentliche Methoden auf Methoden, auf die von außen zugegriffen und die sie aufgerufen werden können, während sich private Methoden auf Methoden beziehen, die im Konstruktor eines Objekts deklariert werden und für die Außenseite unsichtbar und unzugänglich sind.

Was sind öffentliche und private Methoden in Javascript?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.

One: Öffentliche Methoden

Public -Methoden sind Methoden, auf die von außen zugegriffen und aufgerufen werden kann. Zugriff haben Interne private Eigenschaften und öffentliche Methoden privater Methoden (auf private Methoden kann zugegriffen werden, private Eigenschaftsmethoden werden als privilegierte Methoden bezeichnet und sind auch eine Art öffentliche Methode)

Private Methoden beziehen sich auf Deklarationen im Konstruktor des Objekts , die nach außen nicht sichtbar und unzugänglich sind. Verwenden Sie verschiedene Methoden, um private Methoden und privilegierte Methoden in verschiedenen Formen zu definieren.

In Objekten: Wir verwenden Objektausdrücke, um ein Objekt zu erstellen, einige Eigenschaften und Methoden hinzuzufügen und es dann direkt auf statische Weise aufzurufen. Zum Beispiel Rest.getName();

Funktion sofort ausführen

Die privaten Daten des Objekts werden in einem anonymen Funktionsausdruck für sofortige Ausführung (IIFE) platziert, was bedeutet, dass diese Funktion nur in dem Moment existiert, in dem sie aufgerufen wird, und dies auch tun wird wird sofort ausgeführt, sobald es ausgeführt wird.

// 对象中
var test1 = {
    name:'大白',
    getName:function(){
        console.log(this.name);
    }
}
//调用
test1.getName();//大白

// 构造函数中
function test2(name,age){
    this.name = name;
    this.age = age;
    //公有方法
    this.getName = function(){
        console.log(this.name);
    }
}
// 在原型中
test2.prototype.getAge = function(){
    console.log(this.age);
}
//调用
var test3 = new test2('小白',12);
test3.getName();//小白
test3.getAge();//12
Nach dem Login kopieren
Dies ist dasselbe wie die vorherige Definition von Rest, es kann direkt über yourObject aufgerufen werden. Diese Art des modularen Zugriffs ist ziemlich leistungsfähig.

var yourObject = (function() {

 // 私有属性和方法
 return {
 // 公有方法和属性
 }
}) ();
Nach dem Login kopieren

verwendet

closure

, um indirekt interne private Variablen zu verwenden. Es ist sehr praktisch, private Eigenschaften und Methoden im Konstruktor zu definieren. Wir müssen keine Abschlüsse verwenden und können die Daten beim Aufruf von

var test4 = (function(){
    //私有属性
    var total = 10;
    // 私有方法
    var buy = function(){
        total--;
    }
    var get = function(){
        return total;
    }
    return {
        name:'小白白',
        getTotal:get,//使用了闭包的方式来简介使用内部私有变量
        buyfood:buy
    }
})();
test4.buyfood();
console.log(test4.name);//小白白
console.log(test4.getTotal());//9
Nach dem Login kopieren

initialisieren In Kombination verwendet

Mit der Konstruktormethode können Sie einige initialisierte Daten übergeben, auf private Mitgliedseigenschaften kann jedoch nicht in öffentlichen Methoden zugegriffen werden. Wenn es viele öffentliche Methoden gibt, die auf private Daten zugreifen müssen, werden wir sie alle mit schreiben privilegierte Methoden Schließlich werden viele unnötige Methoden in jede Instanz gebracht.

// 构造函数中

function test5(name) {
 // 私有属性
 var total = 10;

 // 公有属性
 this.name = name;

 // 私有方法
 function _buyFood() {
    total--;
 }

 // 特权方法,才能访问私有的属性和私有的方法
 this.buy = function() {
     _buyFood();
 }

 this.getTotal = function() {
    return total;
 }
}

// 公有方法, 注意这里不能访问私有成员_total
test5.prototype.getName = function() {
    //console.log(_total); // Uncaught ReferenceError: _total is not defined
    return this.name;
}

var test6 = new test5('大小白');
console.log(test6.getName()); // '大小白'
test6.buy();
console.log(test6.getTotal()); // 9
Nach dem Login kopieren

【Verwandte Empfehlungen:

Javascript-Lern-Tutorial

Das obige ist der detaillierte Inhalt vonWas sind öffentliche und private Methoden in Javascript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage