javascript函数内的this关键字


在javascript函数内的this指的是谁?一句话: The word "this" within a function refers to the object calling that function.


举例子,如下javascript代码

<script>
  function Ball(p) {
    // alert(this)
    // alert(this.constructor)
    this.v = p;
  }

  // case 1
  var o = new Object();
  o.f = Ball;
  o.f("111");
  alert(o.v);  // 111

  // case 2
  var b = new Ball("222");
  alert(b.v);  // 222

  // case 3
  Ball("333")
  alert(v);   // 333
</script>

Javascript函数Ball()内引用了this关键字,有三个cases验证这个值

Case 1: 调用Ball()函数的对象是o

  "this" point to object "o", so this is an Object object, and this.constructor is "function Object()", and variable "v" is attached to object "o".

Case 2: 调用Ball()函数的对象是b
  "this" point to object "b", so this is an Ball object, and this.constructor is "function Ball()", and variable "v" is attached to object "b".
  Notice: this case works like:
  var b = new Object();
  b.construct = Ball;
  b.construct("222");  // executes b.Ball("222")

Case 3: 调用Ball()函数的对象是全局对象window
  "this" point to object root object, i.e,. window object in browser, so this is an Window object, and this.constructor is "function Window()", and variable "v" is attached to object window, i.e,. "v" becomes a global variable.


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值