Javascript函数4种调用模式
博客专区 > GZhiDao 的博客 > 博客详情
Javascript函数4种调用模式
GZhiDao 发表于1年前
Javascript函数4种调用模式
  • 发表于 1年前
  • 阅读 25
  • 收藏 6
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: Javascript函数4种调用模式
// 函数
		//编程,就是将需求分解变成一组函数与数据结构的技能
		//javascript是一门基于原型继承的语言;
		//javascript 是一门函数式的面向对象编程语言,所有函数开源拥有方法
	// 函数对象
		/***
		1.对象字面量产生的对象连接到Object.prototype
		2.函数对象连接到Function.prototype
		3.每个函数创建时都会两个隐藏属性:函数的上下文和实现函数行为的代码
		4.函数对象在创建时会配有一个prototype属性,它的值是一个拥有constructor属性且值为该函数的对象***/
// 函数字面量
var add = function(a,b){ //匿名函数
	return a+b;
}

// 调用
/*4种调用模式:
	方法模式调用、函数调用模式、构造器调用模式、apply调用模式
	(这些模式在如何初始化关键参数this上存在差异)

	*/
//1.方法调用模式:
var myproject = {
	value:0,
	increamt:function(ico){
		if(ico === 'number')  this.value += 1;
		else this.value += ico;
	}
	//this从对象中取值或修改,this可取得所属对象的上下文的方法
	//称为公共方法
}
myproject.increamt(3);
console.log(myproject.value);
//2.函数调用模式:
	//函数不是对象的属性时,就被当作一个函数来调用,以此模式调用函数时,this被绑定到全局对象
	//解决方法:that
	myproject.double = function(){
		var that = this; //解决了全局对象的问题
		var helper = function(){
			that.value = add(that.value,that.value);
		};
		helper();//函数形式调用helper
	};
	myproject.double();
	document.write(myproject.value);//6
//3.构造器调用模式(不推荐):
	//如果函数前面带上 new 来调用,那么会创建一个连接到该函数的prototype成员新对象,同时this会被绑定到那个新对象上。
	var Quo = function (string){
		this.status = string;
	}
	Quo.prototype.get_status = function (){
		return this.status;
	}
	//构造一个	Quo事例
	var myQuo = new Quo('confused');
	console.log(myQuo.get_status());
//4.apply调用模式
	//apply方法让我们构建一个参数数组传递给调用函数,允许我们选择this的值,apply(要绑定给this的值,一个参数数组);
//构造一个包含两个数字的数组,并将它们相加
var array = [3,5];
var sum = add.apply(null,array);//sum=8
//构造一个包含 status 成员对象
var statusObject = {
	status:'a-ok'
};
//statusObject并没有继承自Quo.prototype,但我们可以在statusObject上调用get_status 方法
var status = Quo.prototype.get_status.apply(statusObject);//a-ok
共有 人打赏支持
粉丝 7
博文 115
码字总数 89796
×
GZhiDao
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: