`
hdxiong
  • 浏览: 375236 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JS高级编程——属性/变量 访问权限

阅读更多
        本人对JS的高级编程也只是略知一二,近段时间老实遇到JS问题,索性做一个探索性的研究,现在把探索的结果记录下来:一来可以自己以后看看;二来供初学者学习。欢迎JS高手给予指点,发现问题请留言。
         研究发现:我们可以将属性(变量)分为三类(对象属性,全局变量和局部变量),下面我来对三类属性(变量)的声明方法和访问权限做一下探究。

对象属性:声明时以“this.”开头,只能被“类的实例”即类的对象所调用,不能被“类内部”调用。
全局变量:声明时直接以变量名开头,可以被“类函数”、“原型函数”和“类内部”所调用。
局部变量:只能被“类内部”调用。


注:JS函数的声明与访问同理。

<script type="text/javascript">
//类
var Hdx = function(){
  //对象属性(只能被“类的实例”和“实例函数”调用)
  this.age ="25";
  //全局变量(只能被“类函数”、“原型函数”和“类内部”调用)
  name="jack";
  //局部变量(只能被“类内部”调用)
  var address = "beijing";
  
  //全局函数(内部/全局直接调用)
  add = function(a,b){
 	//只能访问:全局变量和局部变量
 	multiply(a,b);
  	return a+b;
  }
  //实例函数(由类的对象调用)
  this.minus = function(a,b){
    //可以访问:对象属性、全局变量和局部变量
  	return a-b;
  }
  //局部函数(内部直接调用)
  var multiply = function(a,b){
    //只能访问:全局变量和局部变量
  	return a*b;
  }
}


//类函数(由类名直接调用)
Hdx.talk= function(){
  //只能访问:全局变量和全局函数
  this.what = function(){
  	alert("What can we talk about?");
  	about();
  }
  
  var about = function(){
  	alert("about name:"+name);//jack
  	alert("about add(1,1):"+add(1,1));//2
  }
}


//原型函数(由类的对象调用)
Hdx.prototype.walk = function(){
  //只能访问:全局变量和全局函数
  this.where = function(){
  	alert("Where can we go?");
  	go();
  }
  
  var go = function(){
    alert("go name:"+name);//jack
    alert("go add(1,1):"+add(1,1));//2
  }
}
</script>


下面看看如何调用:
<script type="text/javascript">
//获取一个Hdx类的实例
var hdx = new Hdx();
//调用类的对象属性age
alert("age:"+hdx.age);

//获取类函数talk的实例
var talk = new Hdx.talk();
//调用类函数的实例函数
talk.what();

//获取原型函数walk的实例
var walk = new hdx.walk();
//调用原型函数的实例函数
walk.where();
</script>
分享到:
评论

相关推荐

    JavaScript高级程序设计学习总结

    闭包是一种特性,它允许函数访问并操作其外部作用域的变量,即使在函数执行完毕后仍然保持这种访问权限。 3. **函数与函数表达式** 函数在JavaScript中是第一类公民,可以作为参数传递,也可以作为返回值。函数...

    JS进阶——让你对JS理解更为透彻

    JavaScript(简称JS)是一种广泛使用的轻量级编程语言,尤其在网络开发中占据着核心地位。在进阶学习JS时,理解和掌握面向对象编程(Object-Oriented Programming, OOP)是非常重要的一步。OOP允许我们将复杂的程序...

    Java零基础-访问控制权限修饰符.md

    1. **原则一:最小权限原则** —— 尽可能地限制类和成员的访问范围,只授予必要的权限。这样可以提高代码的安全性和维护性。 2. **原则二:封装** —— 通过将成员变量声明为`private`并提供公共的getter和setter...

    PHP实例开发源码——彩纸屋scratch在线少儿编程系统PHP源码.zip

    【PHP实例开发源码——彩纸屋scratch在线少儿编程系统PHP源码】 PHP是一种广泛使用的开源脚本语言,尤其在Web开发领域具有显著地位。这个压缩包提供的源码是“彩纸屋”在线少儿编程系统的实现,使用PHP作为后端语言...

    Secrets of the JavaScript Ninja, 2nd Edition chapter 7 sample

    理解作用域对于避免变量名冲突、控制变量访问权限以及实现模块化代码都是必不可少的。 文档接着讨论了JavaScript的原型继承。原型是JavaScript中实现对象之间关联的一种机制。每个JavaScript对象都会链接到一个原型...

    JSP网站开发典型模块与实例精讲

     1.8 不能不说——养成良好的编程习惯  1.9 小结 第2章 注册、登录及验证模块设计  2.1 在MySQL Server建立用户信息表  2.1.1 确定用户信息字段  2.1.2 建立用户表  2.2 用JSP处理注册数据  2.2.1 ...

    南瓜脚本包——自用.zip

    4. **JavaScript脚本**:常用于Web开发,可以在浏览器端进行交互,也可以通过Node.js在服务器端运行。 5. **PowerShell脚本**:微软开发的命令行工具,尤其适合Windows环境中的系统管理和自动化。 6. **VBA宏脚本*...

    Javascript教程--从入门到精通.rar

    JavaScript教程——从入门到精通,这是一份专为想要学习或深入理解JavaScript编程语言的人们设计的综合资源。JavaScript,通常简称为JS,是互联网上最广泛使用的客户端脚本语言,用于实现网页的动态交互。它与HTML和...

    Node.js+开发指南

    目 录 第1章 Node.js简介 1 1.1 Node.js是什么 2 1.2 Node.js能做什么 3 1.3 异步式I/O与事件驱动 4 ...1.4 Node.js的性能 5 ...附录A JavaScript的高级特性 147 附录B Node.js编程规范 167

    我做科创项目时用到的浏览器——test错误

    4. **权限问题**:在某些情况下,Python脚本可能没有足够的权限来启动浏览器或者访问网络。你需要检查运行脚本的用户权限,确保它们具有执行所需操作的权限。 5. **浏览器兼容性**:不同的浏览器对HTML、CSS和...

    【ssm项目源码】业权限管理系统.zip

    SSM项目源码——业权限管理系统 SSM项目是指基于Spring、SpringMVC和MyBatis三个开源框架的整合应用,常用于构建企业级的Java Web应用。这个"业权限管理系统"是一个完整的SSM实现,它包含了业务逻辑、权限控制以及...

    PHP实例开发源码——互联网网站即时通信平台(iCenter) v1.4.1 简体中文.zip

    9. **权限控制**:可能包含用户角色和权限设置,以控制不同用户访问和操作的功能。 10. **国际化与本地化**:除了简体中文外,可能还包括其他语言的支持,实现多语言切换。 对于想要学习或使用iCenter的开发者来说...

    ASP.NET源码——蚂蚁企业站整站程序.zip

    【ASP.NET源码——蚂蚁企业站整站程序】 ASP.NET是一种由微软开发的服务器端Web应用程序框架,用于构建动态网站、Web应用和Web服务。它提供了丰富的开发工具、高效的运行环境以及强大的安全性,使得开发者能够快速...

    PHP实例开发源码——MyBB 开源php论坛系统.zip

    一个成熟的论坛系统需要处理用户注册、登录、发帖、回帖等多种功能,这就涉及到了用户认证、权限管理、数据存储等核心模块。通过分析MyBB的代码,我们可以学习到如何组织这些模块,理解MVC(Model-View-Controller)...

    PHP实例开发源码——php树洞外链.zip

    【标题】"PHP实例开发源码——php树洞外链.zip"揭示了这是一个关于PHP编程语言的实际项目案例,其中包含了创建一个"树洞外链"功能的源代码。树洞通常指的是一个允许用户匿名发布信息的平台,而这里的“外链”可能指...

    JavaScript中的面向对象.pdf

    JavaScript,作为一种广泛使用的脚本语言,常常被误解为非面向对象的语言,但实际上,JavaScript完全支持面向对象编程(OOP)的三大核心原则:封装、继承和多态。尽管它的实现方式与传统的面向对象语言(如Java或C++...

    精通JS脚本之ExtJS框架.part1.rar

    本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、...

    PHP实例开发源码——DRYCMS智能内容管理系统.zip

    6. **权限控制与用户认证**:智能内容管理系统通常包含用户管理功能,涉及权限控制和认证机制。这可能涉及到session、cookie以及角色基础的访问控制(RBAC)。理解这些概念,能确保系统安全,防止未授权访问。 7. *...

    深入浅出Rhino:Java与JS互操作

    总之,《深入浅出Rhino:Java与JS互操作》是一本全面解析Rhino引擎及其在Java开发中应用的指南,对于希望在Java应用中嵌入JavaScript功能或使用JavaScript进行服务器端编程的开发者来说,是一本不可多得的参考书。...

Global site tag (gtag.js) - Google Analytics