Dalam JavaScript, kaedah awam merujuk kepada kaedah yang boleh diakses dan dipanggil dari luar kaedah peribadi merujuk kepada kaedah yang diisytiharkan dalam pembina objek dan tidak kelihatan dan tidak boleh diakses oleh luar.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.
1: Kaedah awam
Kaedah awam ialah kaedah yang boleh diakses dan dipanggil secara luaran
// 对象中 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
2: Kaedah persendirian dan kaedah awam
Kaedah istimewa merujuk kepada kaedah awam yang mempunyai akses kepada harta persendirian dalaman dan persendirian kaedah Kaedah (kaedah yang boleh mengakses kaedah persendirian dan atribut persendirian dipanggil kaedah istimewa dan juga merupakan jenis kaedah awam)
Kaedah persendirian diisytiharkan dalam pembina objek dan tidak kelihatan kepada luar dan kaedah tidak boleh diakses.
Gunakan cara yang berbeza untuk menentukan kaedah persendirian dan kaedah istimewa dalam bentuk yang berbeza
Dalam objekKami menggunakan ungkapan objek Objek untuk mencipta objek dan menambah beberapa sifat dan kaedah, Kemudian panggil terus secara statik. Contohnya, Rest.getName();
Fungsi pelaksanaan segeraData peribadi objek diletakkan dalam ekspresi pelaksanaan segera (IIFE) fungsi tanpa nama, yang bermaksud bahawa fungsi ini hanya wujud apabila ia dipanggil Saat ia dilaksanakan, ia akan dimusnahkan serta-merta
var yourObject = (function() { // 私有属性和方法 return { // 公有方法和属性 } }) ();
Ini adalah sama dengan takrifan Rehat sebelum ini, dan boleh diakses terus melalui Objek anda. Akses modular jenis ini agak berkuasa.
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
menggunakan penutupan untuk secara tidak langsung menggunakan pembolehubah persendirian dalaman
Sangat mudah untuk menentukan sifat dan kaedah persendirian dalam pembina perlu menggunakan penutupan, kita boleh memulakan data apabila memanggil
// 构造函数中 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
digabungkan dengan
boleh dihantar menggunakan kaedah pembina Beberapa data yang dimulakan, tetapi atribut ahli persendirian tidak boleh diakses dalam kaedah awam Jika terdapat banyak kaedah awam yang perlu mengakses data peribadi, kami akan menulis semuanya dalam kaedah istimewa, yang akhirnya akan membawa banyak kaedah yang tidak diperlukan untuk setiap kejadian.var test7 = (function(){ // 私有属性 var total = 10; // 私有方法 function buyFood(){ total--; } // 构造函数 function test7(name){ this.name = name; this.getTotal = function(){ return total; } } // 公有方法 这里不是test7内部的私有 test7.prototype.buy = function(){ console.log(total); buyFood(); } test7.prototype.getName = function(){ return this.name; } return test7; })(); var test0 = new test7('大大白'); console.log(test0.getName());//大大白 test0.buy();//10 console.log(test0.getTotal());//9
Tutorial pembelajaran javascript]
Atas ialah kandungan terperinci Apakah kaedah awam dan kaedah persendirian dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!