函数:首先说说我的理解,就是用来实现一些功能的模块,它可以用来相互调用,复用。在javascript中,函数的功能被发挥的更加强大了。在这里,可以说,一个函数就是一个类。它可以包含各种类型的对象。没有了平常编程语言那么多语法的限制。所以使用更加灵活了。下面重点说下函数的用法。
函数对象:javascript中,函数既是对象。它的原型是 Function.prototype。
在函数创建时,会自动添加一个prototype属性。
创建: var a = function(b, c) {
return b + c;
}
注意:1、保留字function不可少。
2、函数名可省略(如上),也可以作为自己的参数实现递归调用。
3、参数
4、函数主体
调用:既是暂停当前函数,去执行一个新函数的过成。出去声明的形参外,函数还会附加两个传递参数:this与argument。
this在javascript中确实是一个让人十分头疼的东西。依据他,javascript具有四种调用模式:
方法调用模式:函数作为对象的一个属性。此时的this指的是这个对象。如下模式:
var Obj={
value:0;
a:function(){
alert(this.value);
}
}
var that = this;
var fun = function(){
that.value = add(that.value, that.value);
};
fun();
}
构造器调用模式:javascript是一门基于原型继承的语言。这就意味着对象可以直接从其他对象继承属性。
在调用函数前带上new,那么将创建一个隐藏的连接到该函数的prototype成员的新对象。此时this绑定到那个新对象上。
var q = function(string){
this.status = string;
};
q.prototype.get_status = function(){
return this.status;
};
var myq = new q("config");
alert(myq.get_status());
这种方式不推荐使用。
Apply调用模式:apply方法,让我们构建一个参数数组并用其去调用函数,他允许我们选择this的值。
apply接受两个参数,一个被绑定this的值与一个参数列表。
var array = [3,4];
var sum = add.apply(null,array); //sum值为7.
函数对象:javascript中,函数既是对象。它的原型是 Function.prototype。
在函数创建时,会自动添加一个prototype属性。
函数可以向对象一样被调用(存放在变量、对象、数组中。可以作为函数的参数,也可以作为返回的值。函数也可以有自己的方法。)
函数字面量:函数也可以声明成字面量的形式。创建: var a = function(b, c) {
return b + c;
}
注意:1、保留字function不可少。
2、函数名可省略(如上),也可以作为自己的参数实现递归调用。
3、参数
4、函数主体
调用:既是暂停当前函数,去执行一个新函数的过成。出去声明的形参外,函数还会附加两个传递参数:this与argument。
this在javascript中确实是一个让人十分头疼的东西。依据他,javascript具有四种调用模式:
方法调用模式:函数作为对象的一个属性。此时的this指的是这个对象。如下模式:
var Obj={
value:0;
a:function(){
alert(this.value);
}
}
函数调用模式:函数不是作为一个对象的方法。此时的this值得是全局对象。
这样存在一定的缺陷。当函数中的函数用this时就会访问错误。解决可如下:
Obj.double = function(){var that = this;
var fun = function(){
that.value = add(that.value, that.value);
};
fun();
}
构造器调用模式:javascript是一门基于原型继承的语言。这就意味着对象可以直接从其他对象继承属性。
在调用函数前带上new,那么将创建一个隐藏的连接到该函数的prototype成员的新对象。此时this绑定到那个新对象上。
var q = function(string){
this.status = string;
};
q.prototype.get_status = function(){
return this.status;
};
var myq = new q("config");
alert(myq.get_status());
这种方式不推荐使用。
Apply调用模式:apply方法,让我们构建一个参数数组并用其去调用函数,他允许我们选择this的值。
apply接受两个参数,一个被绑定this的值与一个参数列表。
var array = [3,4];
var sum = add.apply(null,array); //sum值为7.