本文實例分享了js私有作用域中創建特權方法,供大家參考,具體內容如下
特權方法就是有權存取私有變數和私有函數的公有方法:
function MyObject(){ var privateVariable = 10; function privateFunction(){ return false; } this.publicMethod = function(){ privateVariable ++; return privateFunction(); }; } var x = new MyObject(); console.log(x.publicMethod()) ;//false
私有作用域定義私有變數和函數,同樣也可以建立特權方法,如:
(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());
這裡就可以看出實際上就是在私有作用域中定義了一個全域的建構函數;其中的一個方法就是傳回私有作用域中的一個私有變數和屬性。寫成下面這樣就可以更了解:
Obj = function(){}; (function(){ var x = 10; function y(){ return x + 10; } Obj.prototype.say = function(){ console.log(y()); }; })() var ins = new Obj(); ins.say();
以上就是本文的全部內容,希望對大家的學習有所幫助。