您好,欢迎来到爱玩科技网。
搜索
您的当前位置:首页Javascript静态变量与实例变量

Javascript静态变量与实例变量

来源:爱玩科技网

严格的来讲,js里面并没有静态与私有的概念,所有成员属性都是公开的,下面只是参考OO语言,通过某种方式来实现类似的概念。
一。静态变量
1.私有静态变量
所有实例共享。因为是私有的变量,所以不能通过函数名直接访问。通过闭包来实现。
根据闭包的作用域原理,只能在闭包内部访问。所以,并不是类的任何地方都可以访问这个静态变量。只有类的构造函数或者方法(原型方法),在闭包内部才可以访问。

Js代码

Js代码

1. Func = function(){  
2.         this.test = 'test';  
3.     }  
4.     Func.acfun= 'ne';  
5.     console.log(Func.acfun); //net  

二。实例变量
1.私有实例变量
在构造函数里面,通过var定义的变量,都是私有实例变量,只有在构造的内部才能访问。

Js代码

1. var Person = function(value){  
2.         var age =value;  
3.         this.getAge = function(){  
4.             return age;  
5.         }  
6.     }  
7.     Person.prototype._getAge = function(){  
8.         return age;  
9.     }  
10.   
11.     var yaoming = new Person('27');  
12.     console.log(yaoming.age) //undefined  
13.     console.log(yaoming.getAge()) //27  
14.     console.log(yaoming._getAge()) // age is not defined,原型方法不能访问age,仅在构造函数内部可以访问私有实例变量  


2.公共实例变量
在构造函数或原型方法中使用this定义的属性,以及原型中定义的属性.
使用new 操作符对构造函数是实例化,会创建一个新的对象,并且将构造函数的作用域赋给新对象,并执     行代码,那么构造函数中如果有this定义属性或方法,则是对新对象添加属性或方法。

Js代码

1. var Person = function(name){  
2.       this.name = name;  
3.   }  
4.   Person.prototype.age = '11';  
5.   
6.   var yaoming = new Person('ym');  
7.   console.log(yaoming.name);  
8.   console.log(yaoming.age); //11  

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- aiwanbo.com 版权所有 赣ICP备2024042808号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务