特權方法就是有權訪問私有變量和私有函數的公有方法:
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();
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78208.html
摘要:創建對象中,創建對象的基本模式有三種。因此,在設計構造函數時,需要進行慎重考慮。因此在中,這種問題被稱作繼承破壞封裝。靜態成員每個只有一份,直接通過類對象進行訪問。 什么是封裝 找工作時一些公司給了offer后我就想知道真正拿到手的是多少,畢竟賦稅繁重。但各種稅也好,五險一金也好我實在是弄不清楚,于是我就會在網上的一些稅后收入計算器上進行計算,只需要填寫一些基本信息,比如稅前收入,所...
摘要:模仿塊級作用域在塊級語句中定義的變量,實際上是包含函數中而非語句中創建的。避免對全局作用域產生不良影響這種方式可以通過創建私有作用域,避免對全局作用域產生不良影響。一般包括函數的參數局部變量和內部定義的其他函數。 模仿塊級作用域 在塊級語句中定義的變量,實際上是包含函數中而非語句中創建的。如: function outputNumbers(x){ for (var i = 0;...
摘要:遞歸閉包模仿塊級作用域私有變量小結在編程中,使用函數表達式可以無需對函數命名,從而實現動態編程。匿名函數也稱為拉姆達函數。函數聲明要求有名字,但函數表達式不需要。中的函數表達式和閉包都是極其有用的特性,利用它們可以實現很多功能。 1、遞歸 2、閉包 3、模仿塊級作用域 4、私有變量 5、小結 在JavaScript編程中,使用函數表達式可以無需對函數命名,從而實現動態編程。匿名函數也稱...
摘要:閉包閉包的特點就是內部匿名函數可以訪問外部函數作用域的變量和方法變量對象。閉包的主要表現形式就是匿名函數,但是兩者并不是等價的。中是沒有塊級作用域的,為了在中引入塊級作用域,可以使用匿名函數模擬塊級作用域。 在介紹閉包之前,首先解釋在隨后的測試實例中會使用的assert測試函數,這個方法有別于alert()測試,有很大的改進。 assert()測試方法 #...
摘要:閉包閉包的特點就是內部匿名函數可以訪問外部函數作用域的變量和方法變量對象。閉包的主要表現形式就是匿名函數,但是兩者并不是等價的。中是沒有塊級作用域的,為了在中引入塊級作用域,可以使用匿名函數模擬塊級作用域。 在介紹閉包之前,首先解釋在隨后的測試實例中會使用的assert測試函數,這個方法有別于alert()測試,有很大的改進。 assert()測試方法 #...
閱讀 2211·2021-11-22 13:54
閱讀 3376·2019-08-29 12:25
閱讀 3440·2019-08-28 18:29
閱讀 3579·2019-08-26 13:40
閱讀 3275·2019-08-26 13:32
閱讀 955·2019-08-26 11:44
閱讀 2229·2019-08-23 17:04
閱讀 2968·2019-08-23 17:02