Js全局和局部变量_this关键字_《没有控件的ASPDONET》

一、全局变量和局部变量

  我们可以简单的这样来看浏览器对js的使用:
  浏览器接收到服务器发过来的代码后,会解释生成一棵 存在于浏览器缓存中的 Dom树。
同时为了方便程序员通过js代码来控制浏览器操作,也提供了一个名为window的对象,这个对象中有两个很重要的部分:
  一个就是document,它中间包含了一些能够操作dom树的方法,能让程序员方便的访问和修改dom树从而控制界面的现实。
  其二就是js全局成员,这个其实就是指的为window添加属性。通俗的说,window就是我们js运行的全局环境,平时我们在<script>标签中定义 全局变量 其实就是在为window添加属性。
  但值得注意的是,就算是在方法{}中定义变量,如果没有使用var关键字来声明的话,那这个变量不会成为方法的局部变量,而是也会作为全局变量添加到window对象中。所以,尽管平时我们定义变量可以省略var,但为了避免不小心出现这个问题,还是都写上var关键字吧。


二、this关键字

每个方法都包含两个内部属性,其中一个就是this。

平时我们编写C#或Java代码时,都在类中使用过this关键字,它在这两种高级语言中保存了当前类正在运行的对象的引用。
  在js中,this引用的是函数据以执行操作的对象,也就是 函数在执行时所处的作用域(通俗:就是哪个对象.出了这个函数,那么函数里的this就代表哪个对象)。
  但因为js的弱类型机制及函数本身就是一个Function对象实例的原因,使得一个函数的调用者可以在运行时由一个切换到另一个。

看看下面这个例子:
var color = "blue";  //定义一个全局变量 color,相当于 window.color= "blue"

var o = { color: "red" };  //定义一个全局变量 o,相当于 window.o={ color: "red" }
//定义一个全局变量(方法)sayColor,相当于window. sayColor =function(){alert(this.color); }

    function sayColor() {

       alert(this.color);

    }

sayColor(); //输出blue.相当于window.sayColor();
//因此,此时sayColor中的this代表window.所以this.color=window.color


o.sayColor = sayColor; //此时将sayColor的函数指针赋值给o对象的属性sayColor

o.sayColor(); //那么此时sayColor里的this代表的是o,所以this.color=o.color="red"

 

三、this和prototype

未完待续......太困了...... L O L

 转载请注明出处:邹华栋 Js全局和局部变量_this关键字 开智网 http://www.oumind.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邹伯通_AI智造

研究源码,写文章,录制视频挺好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值