想知道如何进行这项工作。
特定的IP地址与特定的功能相关联。 (注意:在这个例子中,我使用短人名而不是 IP 地址,但想法是相同的。)
如何将键名(*)传递给被调用的函数?
const $ = document.querySelector.bind(document);
const obj = {bob:sayname, ann:sayname, ed:sayhi};
$('input').addEventListener('keyup', readme);
function readme(e){
console.log(e.target.value);
if ( e.target.value in obj){
console.log('got here...');
obj[e.target.value].call(e.target.value); //<== I want to do THIS
obj[e.target.value].call('Fred'); //<== but this doesn't work either
}
}
function sayname(usr){
console.log(usr);
console.log('Name: ', usr);
}
function sayhi(usr){
console.log(usr);
alert('hi, ' + usr);
}
<input type="text">
(*) 这将是 IP 地址(传递给函数)——或者在本例中是人名(Bob、Ann、Ed)。基本上,在 func 中我希望使用该 IP 地址,因此我需要将其传递到 func 中。
如果你只是想调用函数,则不需要
call
方法。只需调用该函数即可。
const $ = document.querySelector.bind(document);
const obj = {bob:sayname, ann:sayname, ed:sayhi};
$('input').addEventListener('keyup', readme);
function readme(e){
console.log(e.target.value);
if ( e.target.value in obj){
console.log('got here...');
obj[e.target.value](e.target.value);
}
}
function sayname(usr){
console.log(usr);
console.log('Name: ', usr);
}
function sayhi(usr){
console.log(usr);
alert('hi, ' + usr);
}
<input type="text">