本文實(shí)例分享了js私有作用域中創(chuàng)建特權(quán)方法,供大家參考,具體內(nèi)容如下
特權(quán)方法就是有權(quán)訪問私有變量和私有函數(shù)的公有方法:
function MyObject(){ var privateVariable = 10; function privateFunction(){ return false; } this.publicMethod = function(){ privateVariable ++; return privateFunction(); };} var x = new MyObject();console.log(x.publicMethod()) ;//false私有作用域中定義私有變量和函數(shù),同樣也可以創(chuàng)建特權(quán)方法,如:
(function(){ var privateValue = 10; function privateFunction(){ return false; } MyObject = function(){}; //沒有var 屬于全局變量,嚴(yán)格模式下會報(bào)錯(cuò) MyObject.prototype.publicMethod = function(){ privateValue ++; return privateFunction(); };})();var instance = new MyObject();console.log(instance.publicMethod());這里就可以看出實(shí)際上就是在私有作用域中定義了一個(gè)全局的構(gòu)建函數(shù);其中的一個(gè)方法就是返回私有作用域中的一個(gè)私有變量和屬性。寫成下面這樣就可以更好地了解:
Obj = function(){};(function(){ var x = 10; function y(){ return x + 10; } Obj.prototype.say = function(){ console.log(y()); };})()var ins = new Obj();ins.say();以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。
新聞熱點(diǎn)
疑難解答