什么是函数?函数就是实现某个功能的代码块。执行时调用需要先声明并可以重复使用。
声明方式:1、function fn(){} 2、var fn=function(){}; 3、 var fn=function fn1(){}; 4、var fn=new Function(); //fn为自行取的函数名,但同时需要遵循命名规范,对大小写敏感。
调用方式:1、方法调用模式 2、函数调用模式 3、构造器调用模式 4、apply调用模式。
1、方法调用模式 如下:先定义一个对象(a,函数的拥有者),然后在对象的属性(b,c)中定义方法(d,是一个函数)。this对象,拥有 JavaScript 代码。实例中 this 的值为 a 对象。结果弹出 123。
<script type="text/javascript">
var a = {
b : 123,
c : "aaa",
d : function() { alert (this.b); }
}
a.d();
</script>
当函数没有被自身的对象调用时, this 的值就会变成全局对象。在 web 浏览器中全局对象是浏览器窗口(window 对象)。
<script type="text/javascript">
function fn() {
return this;
}
alert(fn()) ;
</script>
结果弹出 object Window
2、函数调用模式 如下:先定义一个函数,设置一个变量名保存函数。 弹出 7
var fn = function(a,b) {
return a+b;
}
alert(fn(3,4));
3、构造器调用模式 JavaScript 中函数还可以是构造器。将函数作为构造器来使用的语法就是在函数调用前面加上一个 new 关键字。构造器用于创建特定类型对象——准备好对象以备使用,同时接收构造器可以使用的参数,以在第一次创建对象时,设置成员属性和方法的值。
var A= function() {// 定义一个构造函数
this.name = "123";
this.saySomething = function() {
alert("你好" + this.name);
};
};
var p = new A();// 调用构造器,创建对象
p.saySomething();
以上,首先创建一个构造函数 A,然后使用构造函数创建对象p。这里使用 new 语法。然后在使用对象调用saySomething()方法。
// 定义方法
var func = function(one, two) {
return one+two;
};
// 创建对象
var o = {};
// 给对象添加成员
// apply 模式
Array1 = [1,2];
var p1 = func.apply(o, Array1);// apply传入的是一个参数数组
//console.log(p1);//在控制器日志中显示p1的值为 3
// call 模式
//var p2 = func.call(o,1,2 );