请问你说的是Array的filter函数吗?Array的filter原生实现是只能传递一个方法。
使用方式如下
语法
var new_array = arr.filter(callback[, thisArg])
参数
callback
用来测试数组的每个元素的函数。调用时使用参数 (element, index, array)。
返回true表示保留该元素(通过测试),false则不保留。
thisArg
可选。执行 callback 时的用于 this 的值。
返回值
一个新的通过测试的元素的集合的数组
如果需要修改传入的function,可以使用javascript的bind函数修改,例如以下例子:
var call = function(element,index,array){ console.log(arguments)}undefined
[1,2,3].filter(call)
VM637:1 Arguments(3) [1, 0, Array(3), callee: ƒ, Symbol(Symbol.iterator): ƒ]
VM637:1 Arguments(3) [2, 1, Array(3), callee: ƒ, Symbol(Symbol.iterator): ƒ]
VM637:1 Arguments(3) [3, 2, Array(3), callee: ƒ, Symbol(Symbol.iterator): ƒ]
[]
//通过bind函数将call的参数列表之前增加一个字符串'a'
[1,2,3].filter(call.bind(null,'a'))
VM637:1 Arguments(4) ["a", 1, 0, Array(3), callee: ƒ, Symbol(Symbol.iterator): ƒ]
VM637:1 Arguments(4) ["a", 2, 1, Array(3), callee: ƒ, Symbol(Symbol.iterator): ƒ]
VM637:1 Arguments(4) ["a", 3, 2, Array(3), callee: ƒ, Symbol(Symbol.iterator): ƒ]
[]
prompt() 方法用于显示可提示用户进行输入的对话框。
<html><head>
<script type="text/javascript">
function disp_prompt()
{
var name=prompt("Please enter your name","")
if (name!=null && name!="")
{
document.write("Hello " + name + "!")
}
}
</script>
</head>
<body>
<input type="button" onclick="disp_prompt()"
value="Display a prompt box" />
</body>
</html>
var obj = function() {this.a = function(arg){alert(arg)}
this.b = function(arg){alert(arg+1)}
}
var fn = new obj
fn.a('TEST')