()
可以激活并执行函数。在小括号中可以包含零个或多个参数,参数之间通过逗号进行分隔。
function f(x,y) { //定义函数 return x * y; //返回值 } console.log(f(f(5,6), f(7,8))); //返回1680。重复调用函数
function f(x,y) { //定义函数 return function () { //返回函数类型的数据 return x * y; } } console.log(f(7,8) ()); //返回56,反复调用函数
function f() { //定义函数 return f; //返回函数自身 } console.log(f() () () () () () () () () () () ()); //返回函数自身当然,上述设计方法在实际开发中没有任何应用价值,不建议使用。
var obj = { value : 0, increment : function (inc) { this.value += typeof inc === 'number' ? inc :1; } } obj.increment(); console.log(obj.value); //1 obj.increment(2); console.log(obj.value); //2使用点语法可以调用对象 obj 的方法 increment,然后通过 increment 方法改写 value 属性的值。在 increment 方法中可以使用 this 访问 obj 对象,然后使用 obj.value 方式读写 value 属性值。
function.call(thisobj, args...)
function.apply(thisobj, [args])
function f(x,y) { //定义求和函数 return x + y; } console.log(f.call (null, 3, 4)); //返回7在上面示例中,f 是一个简单的求和函数,通过 call 方法把函数 f 绑定到空对象 null 身上,以实现动态调用函数 f,同时把参数 3 和 4 传递给函数 f,返回值为 7。实际上,f.call(null,3,4) 等价于 null.m(3,4)。
function f(x,y) { //定义求和函数 return x + y; } console.log(f.apply(null, [3,4])); //返回7如果把一个数组或伪类数组的所有元素作为参数进行传递,使用 apply 方法就非常便利。
function max() { //求最大值函数 var m = Number.NEGATIVE_INFINITY; //声明一个负无穷大的数值 for (var i = 0; i < arguments.length; i ++) { //遍历所有实参 if (arguments[i] > m) //如果实参值大于变量m m = arguments[i]; //则把该实参值赋值给m } return m; //返回最大值 } var a = [23,45,2,46,62,45,56,63]; //声明并初始化数组 var m = max.apply(Object, a); //动态调用max,绑定为Object的方法 console.log(m); //返回63在上面示例中,设计定义一个函数 max(),用来计算所有参数中的最大值参数。首先通过 apply 方法动态调用 max() 函数,然后把它绑定为 Object 对象的一个方法,并把包含多个值的数组传递给它,最后返回经过 max() 计算后的最大数组元素。
var a = [23,45,2,46,62,45,56,63]; //定义并初始化数组 var m = Math.max.apply(Object, a); //调用系统函数max console.log(m); //返回63
function f() { return "函数f"; } var obj = {}; f.call(obj); //把函数f绑定为obj对象的方法 console.log(obj.f()); //再次调用该方法,则返回编译错误
function (x,y) { //定义函数 console.log("x =" + x + ", y =" + y); } new f(3,4);使用 new 命令调用函数时,返回的是对象,而不是 return 的返回值。如果不需要返回值,或者 return 的返回值是对象,则可以选用 new 间接调用函数。
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有