JavaScript中并没有私有属性和静态属性这两个概念,不过可以模拟实现。

下面就简单介绍一下如何模拟实现这两个属性。

一.私有属性:

关于私有属性的概念这里就不介绍了。关于实现私有属性的方法其实非常的简单,就是在构造函数中声明一个私有变量(局部变量),然后再在构造函数中定义一个公共方法来方位这个私有变量,就类似于C#中的get和set访问器。

下面是一段实例私有属性代码:
   [ 其他 ] 运行代码    下载代码
<script>
function web(webName) {
  var webName=webName;
  web.prototype.getWebName=function(){
    return webName;
  }
}
firstWeb=new web("51前端");
console.log(firstWeb.getWebName());
secondWeb=new web("新锐网络");
console.log(firstWeb.getWebName());
</script>
以上代码中,创建了两个对象实例,弹出的值也各有不同。

所谓的实例属性,就是在创建的各个对象实例中,属性之间是互不相关的。

代码分析:

webName是构造函数的私有变量,当然在外部不能够直接访问,于是通过使用prototype为构造函数添加了一个函数,此函数可以返回私有变量webName,其实这就是利用了闭包的原理实现的此效果

二.静态属性:

静态属性可以实现数据全局共享。实现它的方式也是非常简单的,首先在构造函数的外部声明一个私有变量,然后通过prototype为此构造函数添加两个函数可以设置和方位构造函数外部声明的私有变量,代码如下:
   [ 其他 ] 运行代码    下载代码
<script>
(function(){
  var staticValue="新锐网络";
  web=function(webName){
    this.webName=webName;
  };
  web.prototype.getStatic=function(){
    return staticValue;
  }
  web.prototype.setStatic=function(value){
    staticValue=value;
  }
})()
var firstWeb=new web();
firstWeb.setStatic("51前端");
console.log(firstWeb.getStatic());
var secondWeb=new web();
console.log(secondWeb.getStatic());
</script>

代码描述:JavaScript 私有属性 静态属性。JavaScript私有属性静态属性



219 292



用户评论
大牛,别默默的看了,快登录帮我点评一下吧!:)      登录 | 注册



×
×
51前端

注册

×
绑定手机

请绑定手机号,在继续操作

×
单次下载支付

应付金额:279

支付完成后,回到下载页面,在进行下载

官方QQ群
意见反馈
qq群

扫描上面二维码加微信群

官方QQ群

jQuery/js讨论群
群号:642649996
Css3+Html5讨论群
群号:322131262

加群请备注:从官网了解到