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

  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会去找属性name
    		console.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会去找属性name
    		console.log(this);
    		alert(name); //验证
    	}
    	//say();
    	console.log(say);
    	var a=new say();//这是重点   当使用关键词new时,你会发现alert的是undefined的。你自己运行代码,会有你意想不到的答案!!!这是因为this指向a,然而a没有属性name,进一步说明了,new也触发这个函数(作为构造函数)。
  4. 我是一只只快乐的小小鸟,一直想飞的更高。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值