本人对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>
分享到:
相关推荐
闭包是一种特性,它允许函数访问并操作其外部作用域的变量,即使在函数执行完毕后仍然保持这种访问权限。 3. **函数与函数表达式** 函数在JavaScript中是第一类公民,可以作为参数传递,也可以作为返回值。函数...
JavaScript(简称JS)是一种广泛使用的轻量级编程语言,尤其在网络开发中占据着核心地位。在进阶学习JS时,理解和掌握面向对象编程(Object-Oriented Programming, OOP)是非常重要的一步。OOP允许我们将复杂的程序...
1. **原则一:最小权限原则** —— 尽可能地限制类和成员的访问范围,只授予必要的权限。这样可以提高代码的安全性和维护性。 2. **原则二:封装** —— 通过将成员变量声明为`private`并提供公共的getter和setter...
【PHP实例开发源码——彩纸屋scratch在线少儿编程系统PHP源码】 PHP是一种广泛使用的开源脚本语言,尤其在Web开发领域具有显著地位。这个压缩包提供的源码是“彩纸屋”在线少儿编程系统的实现,使用PHP作为后端语言...
理解作用域对于避免变量名冲突、控制变量访问权限以及实现模块化代码都是必不可少的。 文档接着讨论了JavaScript的原型继承。原型是JavaScript中实现对象之间关联的一种机制。每个JavaScript对象都会链接到一个原型...
1.8 不能不说——养成良好的编程习惯 1.9 小结 第2章 注册、登录及验证模块设计 2.1 在MySQL Server建立用户信息表 2.1.1 确定用户信息字段 2.1.2 建立用户表 2.2 用JSP处理注册数据 2.2.1 ...
4. **JavaScript脚本**:常用于Web开发,可以在浏览器端进行交互,也可以通过Node.js在服务器端运行。 5. **PowerShell脚本**:微软开发的命令行工具,尤其适合Windows环境中的系统管理和自动化。 6. **VBA宏脚本*...
JavaScript教程——从入门到精通,这是一份专为想要学习或深入理解JavaScript编程语言的人们设计的综合资源。JavaScript,通常简称为JS,是互联网上最广泛使用的客户端脚本语言,用于实现网页的动态交互。它与HTML和...
目 录 第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
4. **权限问题**:在某些情况下,Python脚本可能没有足够的权限来启动浏览器或者访问网络。你需要检查运行脚本的用户权限,确保它们具有执行所需操作的权限。 5. **浏览器兼容性**:不同的浏览器对HTML、CSS和...
SSM项目源码——业权限管理系统 SSM项目是指基于Spring、SpringMVC和MyBatis三个开源框架的整合应用,常用于构建企业级的Java Web应用。这个"业权限管理系统"是一个完整的SSM实现,它包含了业务逻辑、权限控制以及...
9. **权限控制**:可能包含用户角色和权限设置,以控制不同用户访问和操作的功能。 10. **国际化与本地化**:除了简体中文外,可能还包括其他语言的支持,实现多语言切换。 对于想要学习或使用iCenter的开发者来说...
总之,《深入浅出Rhino:Java与JS互操作》是一本全面解析Rhino引擎及其在Java开发中应用的指南,对于希望在Java应用中嵌入JavaScript功能或使用JavaScript进行服务器端编程的开发者来说,是一本不可多得的参考书。...
【ASP.NET源码——蚂蚁企业站整站程序】 ASP.NET是一种由微软开发的服务器端Web应用程序框架,用于构建动态网站、Web应用和Web服务。它提供了丰富的开发工具、高效的运行环境以及强大的安全性,使得开发者能够快速...
一个成熟的论坛系统需要处理用户注册、登录、发帖、回帖等多种功能,这就涉及到了用户认证、权限管理、数据存储等核心模块。通过分析MyBB的代码,我们可以学习到如何组织这些模块,理解MVC(Model-View-Controller)...
【标题】"PHP实例开发源码——php树洞外链.zip"揭示了这是一个关于PHP编程语言的实际项目案例,其中包含了创建一个"树洞外链"功能的源代码。树洞通常指的是一个允许用户匿名发布信息的平台,而这里的“外链”可能指...
JavaScript,作为一种广泛使用的脚本语言,常常被误解为非面向对象的语言,但实际上,JavaScript完全支持面向对象编程(OOP)的三大核心原则:封装、继承和多态。尽管它的实现方式与传统的面向对象语言(如Java或C++...
本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、...
6. **权限控制与用户认证**:智能内容管理系统通常包含用户管理功能,涉及权限控制和认证机制。这可能涉及到session、cookie以及角色基础的访问控制(RBAC)。理解这些概念,能确保系统安全,防止未授权访问。 7. *...