JavaScript中的this关键字介绍与使用实例


Posted in Javascript onJune 21, 2013

当创建一个类的时候,如果希望下面new出来的每个类都拥有一些通用的变量或者其他的函数,这个this关键字这是最好的方式。

当然,既然是面向对象的语言,必然存在访问权限的问题,这里也和this关键字息息相关。下面我们来演示一个例子来说明一下这个类的访问权限的问题.

//Person类  
   function Person(){ 
    var name="abc";//var声明的都是类内部的私有变量,外部无法访问  
    var age = 20;     this.name2="edg";//this声明的是公开变量,外部可以访问  
    this.show=function(){//shou方法是公开的方法,可以被外部访问,而且可以访问类内部私有方法  
    window.alert(name); 
    } 
    function show2(){//shouw2方法是类内部的私有方法,不能被外部访问  
    } 
} 
var p1 = new Person(); 
document.writeln(p1.name2+p1.name); 
p1.show(); 
 //Person类 3water.com
    function Person(){
  var name="abc";//var声明的都是类内部的私有变量,外部无法访问
  var age = 20;
  this.name2="edg";//this声明的是公开变量,外部可以访问
  this.show=function(){//shou方法是公开的方法,可以被外部访问,而且可以访问类内部私有方法
  window.alert(name);
  }
  function show2(){//shouw2方法是类内部的私有方法,不能被外部访问
  }
 }

 var p1 = new Person();
 document.writeln(p1.name2+p1.name);
 p1.show();

这个Person其实就是一个类,类名就是Person,其中声明的变量,var开头的都是私有变量,只能在类的内部实现访

问,而通过this关键字声明的变量是公有的变量,可以在外部访问。当然,只需要公开一个方法,就可以实现外部访

问类内部的私有变量,这个this.show=function(){}就是声明一个共有方法,在类的外部也是可以调用的。当然,以此

类推,直接声明的方法是私有的方法/

下面再看一个例子

function test(){ 
    alert(this.v); 
} 
var v = 902; 
window.test(); 
 function test(){
  alert(this.v);
 }
 var v = 902;
 window.test();

代码很简短,这个的意思是,谁调用的这个方法,这个this就是指的那个对象,比如,window对象调用的test方法,

所以在test方法内部,这个this,v就是指在window也就是外部全局是否定义了一个v变量,通过查看可以知道,定义了

一个var v = 902;所以这个方法调用的其实就是v的值.

Javascript 相关文章推荐
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
Sep 19 Javascript
javascript跨域的4种方法和原理详解
Apr 08 Javascript
JS 打印功能代码可实现打印预览、打印设置等
Oct 31 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
Feb 28 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
Dec 29 Javascript
JS面试题---关于算法台阶的问题
Jul 26 Javascript
简单实现Vue的observer和watcher
Dec 21 Javascript
微信小程序搜索组件wxSearch实例详解
Jun 08 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
May 17 Javascript
jQuery+vue.js实现的多选下拉列表功能示例
Jan 15 jQuery
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
Jun 04 jQuery
微信小程序 导入图标实现过程详解
Oct 11 Javascript
js验证模型自我实现的具体方法
Jun 21 #Javascript
JS验证控制输入中英文字节长度(input、textarea等)具体实例
Jun 21 #Javascript
无缝滚动js代码通俗易懂(自写)
Jun 19 #Javascript
HTML5之lang属性与dir属性的详解
Jun 19 #Javascript
jQuery之ajax技术的详细介绍
Jun 19 #Javascript
jQuery之尺寸调整组件的深入解析
Jun 19 #Javascript
jQuery之排序组件的深入解析
Jun 19 #Javascript
You might like
几款免费开源的不用数据库的php的cms
2010/12/19 PHP
php学习之function的用法
2012/07/14 PHP
PHP使用Alexa API获取网站的Alexa排名例子
2014/06/12 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
2019/03/25 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
JavaScript插件化开发教程(五)
2015/02/01 Javascript
JavaScript日期类型的一些用法介绍
2015/03/02 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
2016/01/28 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
JavaScript输出所选择起始与结束日期的方法
2017/07/12 Javascript
微信小程序开发之路由切换页面重定向问题
2018/09/18 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
js实现鼠标拖曳效果
2020/12/30 Javascript
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
Python获取远程文件大小的函数代码分享
2014/05/13 Python
python模拟登录并且保持cookie的方法详解
2017/04/04 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
python实现键盘控制鼠标移动
2020/11/27 Python
Pandas GroupBy对象 索引与迭代方法
2018/11/16 Python
Python中安装easy_install的方法
2018/11/18 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
Python 私有化操作实例分析
2019/11/21 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
2019/12/09 Python
Python 实现日志同时输出到屏幕和文件
2020/02/19 Python
python IP地址转整数
2020/11/20 Python
AURALog面试题软件测试方面
2013/10/22 面试题
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
英语简历自我评价
2014/01/26 职场文书
酒店大堂副理的职责范文
2014/02/13 职场文书
违纪检讨书
2015/01/27 职场文书
酒店厨房管理制度
2015/08/06 职场文书
Pytorch可视化的几种实现方法
2021/06/10 Python