JS中Function引用类型常见有用的方法和属性详解
在JavaScript中,函数也是一种对象,属于Function类型引用。Function类型中有很多有用的方法和属性,接下来分别进行详细说明。
创建函数的方法
函数的创建有三种主要方式:函数声明,函数表达式和Function构造函数。其中函数声明方式最简单,也是最常见的方式:
函数声明
function functionName(){
//函数体
}
函数表达式
var functionName = function(){
//函数体
};
Function构造函数
var functionName = new Function(arg1, arg2, functionBody);
函数的属性
.length
获取函数定义时声明的形参的数量
示例:
function test(a, b, c) {
console.log(test.length); // 3
}
test(1, 2, 3);
.name
获取函数的名称
示例:
function test() {
console.log(test.name); // test
}
test();
.prototype
指向函数原型对象的引用
示例:
function test() {
}
console.log(test.prototype); // 对象 {}
函数的方法
.apply()
该方法继承自Function.prototype,用来调用一个具有给定this值的函数。同时,以一个数组的形式作为参数传入。
语法:
fun.apply(thisArg, [argsArray])
示例:
function test(a, b, c) {
console.log(a + b + c);
}
var arr = [1, 2, 3];
test.apply(null, arr); // 6
.call()
和apply方法作用相同,用来调用一个具有给定this值的函数。不过,是直接传递函数的形参,而不是使用数组。
语法:
fun.call(thisArg[, arg1[, arg2[, ...]]])
示例:
function test(a, b, c) {
console.log(a + b + c);
}
test.call(null, 1, 2, 3); // 6
.bind()
创建一个新的函数,与原函数具有相同的函数体和作用域,但您可以绑定新的上下文。bind方法可以延迟执行原函数。
语法:
fun.bind(thisArg[, arg1[, arg2[, ...]]])
示例:
function test(a, b, c) {
console.log(this.name);
console.log(a + b + c);
}
var obj = {
name: "bindTest"
};
var bindTest = test.bind(obj, 1, 2);
bindTest(3); // bindTest 6
总结
函数是JavaScript中最重要的部分之一,掌握函数的属性和方法,能够让我们更好地使用JavaScript来实现复杂的业务逻辑。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js中Function引用类型常见有用的方法和属性详解 - Python技术站