Maison >interface Web >Questions et réponses frontales >Que sont les méthodes publiques et les méthodes privées en javascript
En JavaScript, les méthodes publiques font référence à des méthodes accessibles et appelées de l'extérieur ; tandis que les méthodes privées font référence à des méthodes déclarées dans le constructeur d'un objet et qui sont invisibles et inaccessibles de l'extérieur.
L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3. Les méthodes publiques sont des méthodes accessibles et appelées par l'extérieur. avoir accès aux attributs privés internes et aux méthodes publiques des méthodes privées (les méthodes privées sont accessibles, les méthodes d'attributs privés sont appelées méthodes privilégiées et sont également un type de méthode publique)
Les méthodes privées font référence aux déclarations dans le constructeur de l'objet , qui ne sont pas visibles de l’extérieur et méthode inaccessible. Utilisez différentes manières pour définir des méthodes privées et des méthodes privilégiées sous différentes formes
Dans les objetsNous utilisons des expressions d'objet Object pour créer un objet et ajouter des propriétés et des méthodes, puis l'appeler directement de manière statique. Tel que Rest.getName();
Exécuter la fonction immédiatementLes données privées de l'objet sont placées dans une expression d'exécution immédiate de fonction anonyme (IIFE), ce qui signifie que cette fonction n'existe qu'au moment où elle est appelée, et sera être exécuté immédiatement une fois exécuté Destroyed// 对象中
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
C'est la même que la définition précédente de Rest, elle est accessible directement via votreObjet. Ce type d'accès modulaire est assez puissant.
var yourObject = (function() { // 私有属性和方法 return { // 公有方法和属性 } }) ();
utilise closure pour utiliser indirectement des variables privées internes
Il est très pratique de définir des propriétés et des méthodes privées dans le constructeur. Nous n'avons pas besoin d'utiliser des fermetures et pouvons initialiser les données lors de l'appel de
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
. Utilisé en combinaison
En utilisant la méthode constructeur, vous pouvez transmettre certaines données initialisées, mais les propriétés des membres privés ne sont pas accessibles dans les méthodes publiques. S'il existe de nombreuses méthodes publiques qui doivent accéder aux données privées, nous les écrirons toutes. méthodes privilégiées. Enfin, cela apportera de nombreuses méthodes inutiles à chaque instance.
// 构造函数中 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【Recommandations associées : Tutoriel d'apprentissage Javascript
】
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!