javascript中定义私有方法说明(private method)

 更新时间:2014年01月27日 10:30:06   作者:  
本篇文章主要是对javascript中定义私有方法(private method)进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助

一度以为在javascript的世界里,所有方法都是公有的,无法真正从技术上定义一个私有方法,今天又一次发现:其实我错了!

复制代码 代码如下:

var Person = function(name,sex){
    this.name = name;
    this.sex = sex;     
    var _privateVariable = "";//私有变量    
    //构造器中定义的方法,即为私有方法
    function privateMethod(){   
        _privateVariable = "private value";
        alert("私有方法被调用!私有成员值:" + _privateVariable);             
    }
    privateMethod(); //构造器内部可以调用私有方法            
}

Person.prototype.sayHello = function(){
    alert("姓名:" + this.name + ",性别:" + this.sex);
}

var p = new Person("菩提树下的杨过","男");      
p.sayHello();

//p.privateMethod();//这里将报错,私成方法无法被实例调用
alert(p._privateVariable);//显示: undefined

说明:类的构造函数里定义的function,即为私有方法;而在构造函数里用var声明的变量,也相当于是私有变量。(不过类比于c#这类强类型语言中的私有成员概念还是有区别的,比如无法在非构造函数以外的其它方法中调用)

类似的,我们还能实现类似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中的"变量作用域","函数调用上下文(this)","闭包","原型链"这几个概念确实值得花点工夫理解,这几道坎跨过去了,js新手(比如我辈之流)的水平相信也将小上一个新台阶.

相关文章

  • css静态滤镜 + A:Hover 效果

    css静态滤镜 + A:Hover 效果

    css静态滤镜 + A:Hover 效果...
    2007-05-05
  • 浅谈JavaScript 代码整洁之道

    浅谈JavaScript 代码整洁之道

    这篇文章主要介绍了浅谈JavaScript 代码整洁之道,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • package.json与package-lock.json的区别及详细解释

    package.json与package-lock.json的区别及详细解释

    不知道大家平时在开发中有没有注意到,你的项目中有两个文件:package.json,package-lock.json,应该很多人平时都不会去关注这两个文件有啥关系吧,这篇文章主要给大家介绍了关于package.json与package-lock.json的区别及详细解释,需要的朋友可以参考下
    2022-08-08
  • 自己写了一个展开和收起的多更能型的js效果

    自己写了一个展开和收起的多更能型的js效果

    展开和收起这样的效果想必大家早就眼熟了吧,利用闲暇时间用js写了一个具体功能:当自己处于全部显示的时候,点击自己的收起,自己收起等等感兴趣的你可以参考下哈
    2013-03-03
  • javascript设计模式 – 简单工厂模式原理与应用实例分析

    javascript设计模式 – 简单工厂模式原理与应用实例分析

    这篇文章主要介绍了javascript设计模式 – 简单工厂模式,结合实例形式分析了javascript简单工厂模式基本概念、原理、定义、应用场景及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • 理解JavaScript中window对象的一些用途

    理解JavaScript中window对象的一些用途

    这篇文章主要介绍了理解JavaScript中的window对象,本文通过实例代码详细介绍Window对象的一些重要用途,需要的朋友可以参考下
    2022-07-07
  • 小程序接口的promise化的实现方法

    小程序接口的promise化的实现方法

    这篇文章主要介绍了小程序接口的promise化的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 微信小程序上拉加载和下拉刷新功能实现

    微信小程序上拉加载和下拉刷新功能实现

    这篇文章主要介绍了微信小程序上拉加载和下拉刷新功能实现,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • JavaScript时间格式化函数功能及使用示例

    JavaScript时间格式化函数功能及使用示例

    这篇文章主要为大家介绍了JavaScript时间格式化函数功能及使用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • javascript命名约定(变量 函数 类 组件)

    javascript命名约定(变量 函数 类 组件)

    这篇小文章主要是通过一些例子来介绍一些Javascript中一些关于命名变量,函数,类或者是组件的通用约定,虽然这些规则并不是强制性的,但是呢,他们却被一些JS社区所广泛采用,所以,了解他们还是很有必要的
    2023-03-03

最新评论