JS中的call_user_func封装

PHP常见的call_user_func方法,在JS中有时候会用到,比如你想根据某个动态变量去执行方法。

以前遇到过类似的问题没有解决,现在不太记得具体案例了。今天无意中看到类似文章,学到了。代码如下:

<script>
function call_user_func(cb, params) {
	func = window[cb];
	func.apply(cb, params);
}

var funcs = ['test1', 'test2'];
for(var i=0;i<funcs.length;i++) {
	call_user_func(funcs[i], ["ddd", "cc"]);
}
function test1(a, b) {
	console.log(a + b + 'is a good gay');
}
function test2(a, b) {
	console.log(a+b+" is sb");
}
</script>

JS中的call()和apply()方法,是调用某一个对象的方法,并将指针指向另一个对象

<script>
function test3() {
	this.name = "ddd";
	this.showName = function(){
		alert(this.name);
	}
}

function test4() {
	this.name = "ccc";
}
var t4 = new test4();
var t3 = new test3();
t3.showName.call(t4);
</script>
原文地址:https://www.cnblogs.com/xiaoleiel/p/8308800.html