本文實例分享了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();
以上就是本文的全部內容,希望對大家的學習有所幫助。