javascript中定義私有方法說(shuō)明(private method)
一度以為在javascript的世界里,所有方法都是公有的,無(wú)法真正從技術(shù)上定義一個(gè)私有方法,今天又一次發(fā)現(xiàn):其實(shí)我錯(cuò)了!
var Person = function(name,sex){
this.name = name;
this.sex = sex;
var _privateVariable = "";//私有變量
//構(gòu)造器中定義的方法,即為私有方法
function privateMethod(){
_privateVariable = "private value";
alert("私有方法被調(diào)用!私有成員值:" + _privateVariable);
}
privateMethod(); //構(gòu)造器內(nèi)部可以調(diào)用私有方法
}
Person.prototype.sayHello = function(){
alert("姓名:" + this.name + ",性別:" + this.sex);
}
var p = new Person("菩提樹(shù)下的楊過(guò)","男");
p.sayHello();
//p.privateMethod();//這里將報(bào)錯(cuò),私成方法無(wú)法被實(shí)例調(diào)用
alert(p._privateVariable);//顯示: undefined
說(shuō)明:類(lèi)的構(gòu)造函數(shù)里定義的function,即為私有方法;而在構(gòu)造函數(shù)里用var聲明的變量,也相當(dāng)于是私有變量。(不過(guò)類(lèi)比于c#這類(lèi)強(qiáng)類(lèi)型語(yǔ)言中的私有成員概念還是有區(qū)別的,比如無(wú)法在非構(gòu)造函數(shù)以外的其它方法中調(diào)用)
類(lèi)似的,我們還能實(shí)現(xiàn)類(lèi)似set,get屬性的封裝
var Person = function(){
var salary = 0.0;
this.setSalary = function(value){
salary = value;
}
this.getSalary = function(){
return salary;
}
}
var p = new Person();
p.setSalary(1000);
alert(p.getSalary());//返回1000
alert(p.salary);//返回undefined
注:js中的"變量作用域","函數(shù)調(diào)用上下文(this)","閉包","原型鏈"這幾個(gè)概念確實(shí)值得花點(diǎn)工夫理解,這幾道坎跨過(guò)去了,js新手(比如我輩之流)的水平相信也將小上一個(gè)新臺(tái)階.
相關(guān)文章
package.json與package-lock.json的區(qū)別及詳細(xì)解釋
不知道大家平時(shí)在開(kāi)發(fā)中有沒(méi)有注意到,你的項(xiàng)目中有兩個(gè)文件:package.json,package-lock.json,應(yīng)該很多人平時(shí)都不會(huì)去關(guān)注這兩個(gè)文件有啥關(guān)系吧,這篇文章主要給大家介紹了關(guān)于package.json與package-lock.json的區(qū)別及詳細(xì)解釋,需要的朋友可以參考下2022-08-08
自己寫(xiě)了一個(gè)展開(kāi)和收起的多更能型的js效果
展開(kāi)和收起這樣的效果想必大家早就眼熟了吧,利用閑暇時(shí)間用js寫(xiě)了一個(gè)具體功能:當(dāng)自己處于全部顯示的時(shí)候,點(diǎn)擊自己的收起,自己收起等等感興趣的你可以參考下哈2013-03-03
javascript設(shè)計(jì)模式 – 簡(jiǎn)單工廠模式原理與應(yīng)用實(shí)例分析
這篇文章主要介紹了javascript設(shè)計(jì)模式 – 簡(jiǎn)單工廠模式,結(jié)合實(shí)例形式分析了javascript簡(jiǎn)單工廠模式基本概念、原理、定義、應(yīng)用場(chǎng)景及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04
理解JavaScript中window對(duì)象的一些用途
這篇文章主要介紹了理解JavaScript中的window對(duì)象,本文通過(guò)實(shí)例代碼詳細(xì)介紹Window對(duì)象的一些重要用途,需要的朋友可以參考下2022-07-07
小程序接口的promise化的實(shí)現(xiàn)方法
這篇文章主要介紹了小程序接口的promise化的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
JavaScript時(shí)間格式化函數(shù)功能及使用示例
這篇文章主要為大家介紹了JavaScript時(shí)間格式化函數(shù)功能及使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
javascript命名約定(變量?函數(shù)?類(lèi)?組件)
這篇小文章主要是通過(guò)一些例子來(lái)介紹一些Javascript中一些關(guān)于命名變量,函數(shù),類(lèi)或者是組件的通用約定,雖然這些規(guī)則并不是強(qiáng)制性的,但是呢,他們卻被一些JS社區(qū)所廣泛采用,所以,了解他們還是很有必要的2023-03-03

