javascript入門基礎(chǔ)之私有變量
更新時間:2010年02月23日 13:43:40 作者:
開始接觸這門語言時,可能都會覺得這門語言缺少訪問控制符(如public、private、protected),從而導致不能定義私有變量和私有方法。但經(jīng)過進一步了解就會知道javascript同樣可以有私有變量。
先看javascript的普通函數(shù)用法
function sum(a,b){
var c = 10;
function add(){
c++;
}
add();
return a + b + c;
}
var d = sum(4,5);
alert(d) // 20
可以看出,外部要和函數(shù)sum進行交互,只能通過調(diào)用和返回值形式,無法訪問里面的參數(shù)c和內(nèi)部函數(shù)add()。這對于函數(shù)來說屬于正常邏輯。
接下來看javascript的類用法
function sum(pa,pb) {
this.a = pa;
this.b = pb;
this.show = function(){
alert(this.a + this.b);
}
}
var t = new sum(4,5);
t.show();
alert(t.a);
這里通過new創(chuàng)建了sum的對象t。通過t可以調(diào)用方法show來顯示參數(shù)和,也可以直接取參數(shù)信息
結(jié)合兩種方式就產(chǎn)生私有變量和方法的效果。
function sum(pa,pb) {
var __c = 10; //私有變量
function __addc(){ //私有方法
__c++;
}
this.a = pa; //公有變量
this.b = pb; //公有變量
this.setc = function(pc){ //公有方法
__c = pc;
__addc();
}
this.show = function(){ //公有方法
alert(this.a + this.b + __c);
}
}
var t = new sum(4,5);
t.setc(1);
t.show();
從這個例子可以看出,外部無法調(diào)用var聲明的變量和方法,但外部可以通過公有方法為橋梁實現(xiàn)與私有變量交互
建議:為了便于閱讀與區(qū)分,私有變量和方法在命名前加一個或者兩個下劃線。
復(fù)制代碼 代碼如下:
function sum(a,b){
var c = 10;
function add(){
c++;
}
add();
return a + b + c;
}
var d = sum(4,5);
alert(d) // 20
可以看出,外部要和函數(shù)sum進行交互,只能通過調(diào)用和返回值形式,無法訪問里面的參數(shù)c和內(nèi)部函數(shù)add()。這對于函數(shù)來說屬于正常邏輯。
接下來看javascript的類用法
復(fù)制代碼 代碼如下:
function sum(pa,pb) {
this.a = pa;
this.b = pb;
this.show = function(){
alert(this.a + this.b);
}
}
var t = new sum(4,5);
t.show();
alert(t.a);
這里通過new創(chuàng)建了sum的對象t。通過t可以調(diào)用方法show來顯示參數(shù)和,也可以直接取參數(shù)信息
結(jié)合兩種方式就產(chǎn)生私有變量和方法的效果。
復(fù)制代碼 代碼如下:
function sum(pa,pb) {
var __c = 10; //私有變量
function __addc(){ //私有方法
__c++;
}
this.a = pa; //公有變量
this.b = pb; //公有變量
this.setc = function(pc){ //公有方法
__c = pc;
__addc();
}
this.show = function(){ //公有方法
alert(this.a + this.b + __c);
}
}
var t = new sum(4,5);
t.setc(1);
t.show();
從這個例子可以看出,外部無法調(diào)用var聲明的變量和方法,但外部可以通過公有方法為橋梁實現(xiàn)與私有變量交互
建議:為了便于閱讀與區(qū)分,私有變量和方法在命名前加一個或者兩個下劃線。
相關(guān)文章
詳解如何解決使用JSON.stringify時遇到的循環(huán)引用問題
這篇文章主要介紹了詳解如何解決使用JSON.stringify時遇到的循環(huán)引用問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03細說JS數(shù)組遍歷的一些細節(jié)及實現(xiàn)
本文主要介紹了細說JS數(shù)組遍歷的一些細節(jié)及實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-05-05獲取頁面高度,窗口高度,滾動條高度等參數(shù)值getPageSize,getPageScroll
獲取頁面高度,窗口高度,滾動條高度等參數(shù)值getPageSize,getPageScroll...2006-09-09layui 實現(xiàn)table翻頁滾動條位置保持不變的例子
今天小編就為大家分享一篇layui 實現(xiàn)table翻頁滾動條位置保持不變的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09js中json對象和字符串的理解及相互轉(zhuǎn)化操作實現(xiàn)方法
這篇文章主要介紹了js中json對象和字符串的理解及相互轉(zhuǎn)化操作實現(xiàn)方法,結(jié)合實例形式分析了json對象與字符串的功能以及相互轉(zhuǎn)換操作實現(xiàn)技巧,需要的朋友可以參考下2017-09-09