JS中函数的四种调用模式

在C#或JAVA等这样的语言中,方法和函数都是一个意思,但是在JS中却有着一定的区别,JS中一共分为四种形态,分为函数形态、方法形态、构造器与上下文模式,下面就简单介绍一下这四种模式的法。

函数形态

var foo = function() {
	alert(this);
};
foo();

此时this是window对象 

方法形态

var foo =function(){
    alert(this);
}
var o={};
o.foo=foo;
o.foo();

 此时alert的便为object对象

构造器

造器其实就是构造函数

var Person = function () {
	this.age = 19;
	this.name = "着小虎";
	return "{}";
};
var p = new Person();
alert(p.name);

构造函数要看返回值是什么类型。如果返回值是一个对象,那么就按照返回值来返回,如果返回值不是一个对象就忽略返回值,直接返回this

1.new创建了对象,并且开辟了空间

2.将对象的引用地址传递给参数,在函数中用this接受

3.构造方法之行结束,返回this

上下文模式

语法:函数.apply(对象,[参数列表])

var foo1 = function (a, b) {
    alert(this);
    return a > b ? a : b;
};
var num = foo1.apply(null, [121, 34]);//全局调用,此时foo1中alert(this)出来的是window
var num = foo1.apply({}, [121, 34]);//方法调用,此时foo1中alert(this)出来的是object
alert(num);

that对象

that对象
var lib = {
	test:function() {
		var that = this;
		(function(){
			//that.xxx
		})();
	}
};

var that=this就是将当前的this对象复制一份到that变量中。

this对象在程序中随时会改变,而var that=this之后,that没改变之前仍然是指向当时的this,这样就不会出现找不到原来的对象。

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Geek-Banana

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值