首頁 >web前端 >js教程 >詳解js私有作用域中建立特權方法_javascript技巧

詳解js私有作用域中建立特權方法_javascript技巧

WBOY
WBOY原創
2016-05-16 15:18:331384瀏覽

本文實例分享了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();

以上就是本文的全部內容,希望對大家的學習有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn