javascript - 不明白为什么js中this的指 ?
PHP中文网
PHP中文网 2017-04-11 11:46:33
[JavaScript讨论组]


  
    
    
  
  
    

为什么这里的this 指向 window ? 我是看到作用域链的时候,实际在调用odd方法时创建了上下文,this为什么指向window?

PHP中文网
PHP中文网

认证0级讲师

全部回复(4)
巴扎黑

首先要清楚 odd 并不是一个方法,只有当函数作为对象的属性调用时,才称之为方法

//方法
o.add();

//函数
add();
  • 当函数作为方法被调用时 this 的指向是调用函数的对象(除非显式的被修改)

  • 当函数直接被调用时 this 指向 window(在严格模式中指向 undefined)


补充:

  • 当函数作为构造函数被调用时(使用new), this指向一个新对象,这个新对象的原型指向构造函数的prototype属性

//构造函数
new Add();
天蓬老师

函数如果不是使用 new 运行或者是使用 applycallbind 方法的话,this都指向全局对象(有的环境没window所以这么说)
你要指向的话请 new odd();

黄舟

this永远都指向调用该方法的对象

迷茫

这里要搞明白函数的定义:包括在花括号的代码块。既然是代码块,又不是构造函数creat一个新对象,那么再复杂的函数,里面的this也指向全局对象

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号