JavaScript 對(duì)象成員的可見(jiàn)性說(shuō)明
更新時(shí)間:2009年10月16日 20:54:13 作者:
與java等基于類(lèi)的面向?qū)ο笳Z(yǔ)言的private、protected、public等關(guān)鍵字的用途類(lèi)似,基于對(duì)象的JavaScript語(yǔ)言,在對(duì)象構(gòu)造上也存在類(lèi)似的成員可見(jiàn)性問(wèn)題。
JavaScript對(duì)象構(gòu)造的可見(jiàn)性定義可以分為以下幾種:
1,私有屬性(private properties)
通過(guò)var關(guān)鍵字定義對(duì)象構(gòu)造中變量的作用域,該變量只能在對(duì)象構(gòu)造方法的作用域內(nèi)被訪問(wèn)。如:
function VariableTest()
{
var myVariable;//private
}
var vt = new VariableTest();
vt.myVariable;//這里會(huì)出現(xiàn)undefined異常
2,私有方法(private methods)
與私有屬性類(lèi)似,只能在對(duì)象構(gòu)造方法作用域內(nèi)被訪問(wèn)。如:
function MethodTest()
{
var myMethod = function()//private
{
alert("private method");
}
this.invoke = function()
{
//能夠訪問(wèn)到myMethod
myMehtod();
}
}
var mt = new MethodTest();
mt.myMethod();//錯(cuò)誤。使用trycatch的話,可捕獲“對(duì)象不支持此屬性或方法”異常
mt.invoke();
3,公共屬性(public properties)
有兩種定義公共屬性的途徑:
?。?)通過(guò)this關(guān)鍵字來(lái)定義。如:
function PrivilegedVariable()
{
this.variable = "privileged variable";
}
var pv = new PrivilegedVariable();
pv.variable;//返回 "privileged variable"
?。?)通過(guò)構(gòu)造方法的原型來(lái)定義。如:
function PublicVariable(){}
PublicVariable.prototype.variable = "public variable";
var pv = new PublicVariable();
pv.variable;//返回"public variable"
4,公共方法(public methods)
同理,有兩種定義公共方法的途徑。
?。?)通過(guò)this關(guān)鍵字來(lái)定義。(2)通過(guò)構(gòu)造方法的原型來(lái)定義。
這里省略。。。。。。。。。。。
5,靜態(tài)屬性(static properties)
直接為對(duì)象構(gòu)造方法添加的屬性,不能被對(duì)象實(shí)例訪問(wèn),只能供構(gòu)造方法自身使用。如:
function StaticVariable(){}
StaticVariable.variable = "static variable";
var sv = new StaticVariable();
sv.variable;//返回"undefined"
StaticVariable.prototype.variable;//返回"undefined"
StaticVariable.variable;//返回"static variable"
6,靜態(tài)方法(static methods)
直接為對(duì)象構(gòu)造方法添加的方法,不能被對(duì)象實(shí)例訪問(wèn),只能供構(gòu)造方法自身使用。
代碼省略。。。。。。。。
1,私有屬性(private properties)
通過(guò)var關(guān)鍵字定義對(duì)象構(gòu)造中變量的作用域,該變量只能在對(duì)象構(gòu)造方法的作用域內(nèi)被訪問(wèn)。如:
復(fù)制代碼 代碼如下:
function VariableTest()
{
var myVariable;//private
}
var vt = new VariableTest();
vt.myVariable;//這里會(huì)出現(xiàn)undefined異常
2,私有方法(private methods)
與私有屬性類(lèi)似,只能在對(duì)象構(gòu)造方法作用域內(nèi)被訪問(wèn)。如:
復(fù)制代碼 代碼如下:
function MethodTest()
{
var myMethod = function()//private
{
alert("private method");
}
this.invoke = function()
{
//能夠訪問(wèn)到myMethod
myMehtod();
}
}
var mt = new MethodTest();
mt.myMethod();//錯(cuò)誤。使用trycatch的話,可捕獲“對(duì)象不支持此屬性或方法”異常
mt.invoke();
3,公共屬性(public properties)
有兩種定義公共屬性的途徑:
?。?)通過(guò)this關(guān)鍵字來(lái)定義。如:
復(fù)制代碼 代碼如下:
function PrivilegedVariable()
{
this.variable = "privileged variable";
}
var pv = new PrivilegedVariable();
pv.variable;//返回 "privileged variable"
?。?)通過(guò)構(gòu)造方法的原型來(lái)定義。如:
復(fù)制代碼 代碼如下:
function PublicVariable(){}
PublicVariable.prototype.variable = "public variable";
var pv = new PublicVariable();
pv.variable;//返回"public variable"
4,公共方法(public methods)
同理,有兩種定義公共方法的途徑。
?。?)通過(guò)this關(guān)鍵字來(lái)定義。(2)通過(guò)構(gòu)造方法的原型來(lái)定義。
這里省略。。。。。。。。。。。
5,靜態(tài)屬性(static properties)
直接為對(duì)象構(gòu)造方法添加的屬性,不能被對(duì)象實(shí)例訪問(wèn),只能供構(gòu)造方法自身使用。如:
復(fù)制代碼 代碼如下:
function StaticVariable(){}
StaticVariable.variable = "static variable";
var sv = new StaticVariable();
sv.variable;//返回"undefined"
StaticVariable.prototype.variable;//返回"undefined"
StaticVariable.variable;//返回"static variable"
6,靜態(tài)方法(static methods)
直接為對(duì)象構(gòu)造方法添加的方法,不能被對(duì)象實(shí)例訪問(wèn),只能供構(gòu)造方法自身使用。
代碼省略。。。。。。。。
您可能感興趣的文章:
- Javascript面象對(duì)象成員、共享成員變量實(shí)驗(yàn)
- js對(duì)象內(nèi)部訪問(wèn)this修飾的成員函數(shù)示例
- JavaScript 面向?qū)ο蟮闹接谐蓡T和公開(kāi)成員
- JS實(shí)現(xiàn)的Object數(shù)組去重功能示例【數(shù)組成員為Object對(duì)象】
- JavaScript 面向?qū)ο蟮?私有成員和公開(kāi)成員
- javascript面向?qū)ο笾x成員方法實(shí)例分析
- javascript面向?qū)ο笾蚕沓蓡T屬性與方法及prototype關(guān)鍵字用法
- JS面向?qū)ο蠡A(chǔ)講解(工廠模式、構(gòu)造函數(shù)模式、原型模式、混合模式、動(dòng)態(tài)原型模式)
- JS 面向?qū)ο笾衿娴膒rototype
- js面向?qū)ο笾?、私有、靜態(tài)屬性和方法詳解
- js面向?qū)ο笾R?jiàn)創(chuàng)建對(duì)象的幾種方式(工廠模式、構(gòu)造函數(shù)模式、原型模式)
- 《javascript設(shè)計(jì)模式》學(xué)習(xí)筆記一:Javascript面向?qū)ο蟪绦蛟O(shè)計(jì)對(duì)象成員的定義分析
相關(guān)文章
element-ui 圖片壓縮上傳功能實(shí)現(xiàn)
這篇文章主要介紹了element-ui 圖片壓縮上傳功能實(shí)現(xiàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-10-10
js實(shí)現(xiàn)隨機(jī)點(diǎn)名系統(tǒng)(實(shí)例講解)
下面小編就為大家?guī)?lái)一篇js實(shí)現(xiàn)隨機(jī)點(diǎn)名系統(tǒng)(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10
JS?中數(shù)組的增刪改查和對(duì)象的增刪改查實(shí)例詳解
這篇文章主要介紹了JS?中數(shù)組的增刪改查和對(duì)象的增刪改查實(shí)例詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
js彈性勢(shì)能動(dòng)畫(huà)之拋物線運(yùn)動(dòng)實(shí)例詳解
這篇文章主要為大家詳細(xì)介紹了js彈性勢(shì)能動(dòng)畫(huà)之拋物線運(yùn)動(dòng)的制作方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
純編碼實(shí)現(xiàn)微信小程序彈幕效果(非視頻底)
這篇文章主要介紹了微信小程序彈幕純編碼實(shí)現(xiàn),這種效果是非視頻底,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
javascript面向?qū)ο笕筇卣髦^承實(shí)例詳解
這篇文章主要介紹了javascript面向?qū)ο笕筇卣髦^承,簡(jiǎn)單描述了繼承的概念、原理,并結(jié)合實(shí)例形式詳細(xì)分析了繼承的常見(jiàn)實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2019-07-07
JavaScript正則表達(dá)式的貪婪匹配和非貪婪匹配
所謂貪婪匹配就是匹配重復(fù)字符是盡可能多的匹配,非貪婪匹配就是盡可能少的匹配,下面通過(guò)一個(gè)例子給大家分享JavaScript正則表達(dá)式的貪婪匹配和非貪婪匹配,感興趣的朋友參考下吧2017-09-09
js實(shí)現(xiàn)的光標(biāo)位置工具函數(shù)示例
這篇文章主要介紹了js實(shí)現(xiàn)的光標(biāo)位置工具函數(shù),結(jié)合實(shí)例形式分析了JavaScript操作textarea文本框光標(biāo)位置及文本操作相關(guān)技巧,需要的朋友可以參考下2016-10-10

