javascript中定義私有方法說明(private method)
更新時(shí)間:2014年01月27日 10:30:06 作者:
本篇文章主要是對javascript中定義私有方法(private method)進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
一度以為在javascript的世界里,所有方法都是公有的,無法真正從技術(shù)上定義一個(gè)私有方法,今天又一次發(fā)現(xiàn):其實(shí)我錯(cuò)了!
復(fù)制代碼 代碼如下:
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("菩提樹下的楊過","男");
p.sayHello();
//p.privateMethod();//這里將報(bào)錯(cuò),私成方法無法被實(shí)例調(diào)用
alert(p._privateVariable);//顯示: undefined
說明:類的構(gòu)造函數(shù)里定義的function,即為私有方法;而在構(gòu)造函數(shù)里用var聲明的變量,也相當(dāng)于是私有變量。(不過類比于c#這類強(qiáng)類型語言中的私有成員概念還是有區(qū)別的,比如無法在非構(gòu)造函數(shù)以外的其它方法中調(diào)用)
類似的,我們還能實(shí)現(xiàn)類似set,get屬性的封裝
復(fù)制代碼 代碼如下:
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)工夫理解,這幾道坎跨過去了,js新手(比如我輩之流)的水平相信也將小上一個(gè)新臺階.
相關(guān)文章
package.json與package-lock.json的區(qū)別及詳細(xì)解釋
不知道大家平時(shí)在開發(fā)中有沒有注意到,你的項(xiàng)目中有兩個(gè)文件:package.json,package-lock.json,應(yīng)該很多人平時(shí)都不會去關(guān)注這兩個(gè)文件有啥關(guān)系吧,這篇文章主要給大家介紹了關(guān)于package.json與package-lock.json的區(qū)別及詳細(xì)解釋,需要的朋友可以參考下2022-08-08
javascript設(shè)計(jì)模式 – 簡單工廠模式原理與應(yīng)用實(shí)例分析
這篇文章主要介紹了javascript設(shè)計(jì)模式 – 簡單工廠模式,結(jié)合實(shí)例形式分析了javascript簡單工廠模式基本概念、原理、定義、應(yīng)用場景及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04
小程序接口的promise化的實(shí)現(xiàn)方法
這篇文章主要介紹了小程序接口的promise化的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
JavaScript時(shí)間格式化函數(shù)功能及使用示例
這篇文章主要為大家介紹了JavaScript時(shí)間格式化函數(shù)功能及使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
javascript命名約定(變量?函數(shù)?類?組件)
這篇小文章主要是通過一些例子來介紹一些Javascript中一些關(guān)于命名變量,函數(shù),類或者是組件的通用約定,雖然這些規(guī)則并不是強(qiáng)制性的,但是呢,他們卻被一些JS社區(qū)所廣泛采用,所以,了解他們還是很有必要的2023-03-03

