Javascript 如何使用json中的参数调用js方法?

Javascript 如何使用json中的参数调用js方法?,javascript,json,Javascript,Json,我想先打一个小时,再打一个小时。我实现了无参数的callnow方法。虽然AddHour有2个参数,但我无法访问AddHour方法。try返回以下错误:附加信息:未定义first 如何在json对象中调用Addhour var f = { Now: Now(), Today: Today(), Yesterday: Yesterday(), Tomorrow: Tomorrow(), ThisMonth: ThisMonth(), ThisYear

我想先打一个小时,再打一个小时。我实现了无参数的callnow方法。虽然AddHour有2个参数,但我无法访问AddHour方法。try返回以下错误:附加信息:未定义first 如何在json对象中调用Addhour


var f = {
    Now: Now(),
    Today: Today(),
    Yesterday: Yesterday(),
    Tomorrow: Tomorrow(),
    ThisMonth: ThisMonth(),
    ThisYear: ThisYear(),
    AddHour : AddHour(first,second),
    DateDiff: function (first, second) {
        return first+second;
    }
}
function AddHour (first, second) {
    return first+second;
}
function Now() {
    var date = new XDate();
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var day = date.getDate();
    var hour = date.getHours();
    var minute = date.getMinutes();
    var second = date.getSeconds();
    return ConvertToLONG(year, month, day, hour, minute, second);

}

在对象中使用AddHour时,不需要指定参数。您可以这样声明:

ThisYear: ThisYear(),
AddHour : AddHour,
DateDiff: function (first, second) {
    return first+second;
}
您在代码中将参数传递给方法,Javascript试图找到这些参数,因此您尝试不将函数分配给属性,而是使用两个参数调用函数(第一个参数、第二个参数,并将其结果分配给属性),这在您的情况下是不正确的


附加说明-这里没有JSON,正如其他人在评论中提到的。您正在创建Javascript对象-您的f就是这个对象。

您有两个问题:

首先,您对JSON感到困惑:Javascript对象不是JSON,JSON是一种以类似JS的格式存储信息的方法。因此,这里只有一个JS对象

第二个问题:如果要将函数指定为属性,正确的方法如下:

function myFn(first,second) {
  return first+second;
}

var objecWithFunction= {
  myAttr: myFn
}
因为如果您输入参数,您将获得执行该函数的结果:

var objectWithResult = {
  myAttr: myFn(1,2); //myAttr will store the number 3, not the function
}
console.log(objecWithFunction.myAttr(1,2)); //it will print 3
console.log(objectWithResult.myAttr ); //it will print 3

您的代码失败是因为解释器无法找到执行函数的第一个和第二个变量,但我认为这不是您的意思。

这里没有JSON,那只是JavaScript。您有JavaScript对象文本这一事实与此无关。第一个没有定义,因为你没有定义它,我看不到你的任何迹象,甚至在任何地方试图定义它。你希望它有什么价值?