Javascript---有趣的一段代码--this指向问题

来源:互联网 发布:邪恶镰刀 数据 编辑:程序博客网 时间:2024/05/21 22:55
  1. this指向问题是老生长谈问题,ps:在理解上this是的对象的别名。
    <span style="white-space:pre"></span>/**代码展示   *name全局变量*say全局函数*小知识:全局对象是window, 全局变量相对于对象来说,就是全局对象(window)的属性,全局函数相对于对象来说,就是全局对象(window)的方法。*this代表的window(大家可以测试呀),this同样是相对于对象来说的。*/var name="javascript";function say(){var name="php";//这里是相对于函数来说的,也就是函数alert(this.name);  //有人会打印出php,对吧,其实这是javascript.  this会去找属性nameconsole.log(this);alert(name); //验证}say();//用于触发函数和方法
  2. 总结:在Javascript中,方法和函数式,是相对于不同的环境的,相对于window,可以是方法和函数,相对于其他的对象,是方法。
  3. this指向的转换
    <span style="white-space:pre"></span>var name="javascript";function say(){var name="php";//这里是相对于函数来说的,也就是函数alert(this.name);  //有人会打印出php,对吧,其实这是javascript.  this会去找属性nameconsole.log(this);alert(name); //验证}//say();console.log(say);var a=new say();//这是重点   当使用关键词new时,你会发现alert的是undefined的。你自己运行代码,会有你意想不到的答案!!!这是因为this指向a,然而a没有属性name,进一步说明了,new也触发这个函数(作为构造函数)。
  4. 我是一只只快乐的小小鸟,一直想飞的更高。
0 0
原创粉丝点击