Rumah >hujung hadapan web >tutorial js >Penjelasan terperinci tentang mencipta kaedah istimewa dalam kemahiran js private scope_javascript

Penjelasan terperinci tentang mencipta kaedah istimewa dalam kemahiran js private scope_javascript

WBOY
WBOYasal
2016-05-16 15:18:331417semak imbas

Contoh dalam artikel ini berkongsi kaedah mencipta keistimewaan dalam skop peribadi js untuk rujukan anda Kandungan khusus adalah seperti berikut

Kaedah istimewa ialah kaedah awam yang mempunyai akses kepada pembolehubah peribadi dan fungsi peribadi:

function MyObject(){
  var privateVariable = 10;
  function privateFunction(){
    return false;
  }
  this.publicMethod = function(){
    privateVariable ++;
    return privateFunction();
  };
}  
var x = new MyObject();
console.log(x.publicMethod()) ;//false

Pembolehubah dan fungsi peribadi ditakrifkan dalam skop peribadi, dan kaedah istimewa juga boleh dibuat, seperti:

(function(){
  var privateValue = 10;
  function privateFunction(){
    return false;
  }
  
  MyObject = function(){}; //没有var 属于全局变量,严格模式下会报错
  
  MyObject.prototype.publicMethod = function(){
    privateValue ++;
    return privateFunction();
  };
})();

var instance = new MyObject();
console.log(instance.publicMethod());

Di sini anda boleh melihat bahawa fungsi pembina global sebenarnya ditakrifkan dalam skop persendirian; salah satu kaedah adalah untuk mengembalikan pembolehubah dan atribut persendirian dalam skop persendirian. Anda boleh memahaminya dengan lebih baik dengan menulisnya seperti ini:

Obj = function(){};

(function(){
  var x = 10;
  function y(){
    return x + 10;
  }

  Obj.prototype.say = function(){
    console.log(y());
  };
})()

var ins = new Obj();
ins.say();

Di atas adalah keseluruhan kandungan artikel ini, saya harap ia akan membantu kajian semua orang.

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