Javascript 在本机JS上以不同的方式调用函数
我正在为我的代码的基本结构寻找解决方案。我尽量少用括号或单词。我不知道有没有办法,但我想问:) 我试图创建一个动态对象,当其他东西发生变化时,它会发生变化。基本上,我必须使用一个函数。我来这里是为了缩短我使用的方式 让我给你一个可行的解决方案:Javascript 在本机JS上以不同的方式调用函数,javascript,Javascript,我正在为我的代码的基本结构寻找解决方案。我尽量少用括号或单词。我不知道有没有办法,但我想问:) 我试图创建一个动态对象,当其他东西发生变化时,它会发生变化。基本上,我必须使用一个函数。我来这里是为了缩短我使用的方式 让我给你一个可行的解决方案: function mainFunction(object){ // getElementById(object.id) // use object.date // use object.string } mainFunction
function mainFunction(object){
// getElementById(object.id)
// use object.date
// use object.string
}
mainFunction (function(){return{ id:"varName",date: Date.now(), string:"test2" }})
对于此示例,我不满意以下命令:
mainFunction (function(){return{
}})
现在,问题1:
有没有一种方法可以使用短方法创建动态对象
//预期代码
mainFunction{ id:"varName",date: Date.now(), string:"test2" };
varName.mainFunction (date: Date.now(), string:"test2");
->每次调用对象时都必须重新定义日期。
->在引号中使用date.now并用eval或Function调用它是没有意义的
问题2:
是否有一种方法可以在开始时使用varName,即使它未定义
//预期代码
mainFunction{ id:"varName",date: Date.now(), string:"test2" };
varName.mainFunction (date: Date.now(), string:"test2");
//预期结果
{
if (typeof varName !=="undefined"){
//create it.
}
// call the main function.
}
->尝试、抓住等。不要在这里工作。因为我不想在主代码上使用try
非常感谢,如果我理解正确,您可以使用访问器属性来完成您所询问的括号部分。在这种情况下,我不认为这是一种好的做法(函数调用通常应该看起来像函数调用,而不是属性访问),但如果您想:
函数main函数(对象){
const first=object.date;
console.log(第一);
while(object.date==first)
;//忙循环最长可达一毫秒
console.log(object.date);
}
主要功能({
获取日期(){
返回日期。现在();
}
//获取字符串(){etc。
})
欢迎来到Stack Overflow!请带上(您会得到一个徽章!),环顾四周,并通读,特别是我还推荐Jon Skeet的。我恐怕不清楚您在这里尝试做什么,也不清楚您显示的代码的哪些部分正在尝试创建您所询问的内容,以及哪些部分正在尝试使用它。请澄清您正在尝试做什么。定义您的函数具有使用默认属性值的默认参数对象,function main(obj={date:date.now(),string:“test2”}{console.log(obj);}
如果传递给函数的对象没有默认属性之一,则将使用默认值