js中this的用法

this是javascript中的一个关键字。它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如:

function test(){
	this.x = 1;
}
随着函数适用场合的不同,this的值会发生变化。但有一个总的原则,那就是this指的是,调用函数的那个对象。

1.全局环境中的this

var a = 10;
alert(this.a);
this.b  = 20;
alert(b);
c=30;
alert(this.c);
全局环境中的this指向全局对象,全局对象在浏览器中指的是window对象,但是在node.js里面指的不是window对象哦~ 

2.构造器中的this

function Person(name,age){
	<strong>this</strong>.name = name;
	<strong>this</strong>.age = age;
	<strong>this</strong>.sayHello = function(){
		alert("Hello, " + this.name);
	}
}
var p1 = new Person("lily",20);

构造器中的this指的是新创建的对象。

3.函数中的this

function Person(name,age){
	this.name = name;
	this.age = age;
	this.sayHello = function(){
		alert("Hello, " + <strong>this</strong>.name);
	}
}
var p1 = new Person("lily",20);
函数里面的this指向函数的调用者,在这个例子中,调用sayHello函数的是对象p1。

4.new Function中的this

(function(){
	var f = new Function("alert(this)");
	f();
})();
function Foo(){
	this.bar = function(){
		var f = new Function("alert(this)");
		f();
	}
}
var foo = new Foo();
foo.bar();
用new Function创建对象时,里面的this都是指的全局对象,即window对象。

5.eval的this  调用上下文中的this

(function(){
	eval("alert(this)");
})();
function Foo(){
	this.bar = function(){
		eval("alert(this)");
	}
}
var foo = new Foo();
foo.bar();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值