Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用函数设置变量_Javascript_Jquery - Fatal编程技术网

Javascript 使用函数设置变量

Javascript 使用函数设置变量,javascript,jquery,Javascript,Jquery,我想使用以下函数setDef()设置一个变量 我的例子不起作用。我该怎么办 var defs = { title: document.title, action: "pageview" }; var setDefs = function(a,b) { defs.a= b; // this: defs.title = b; is working. }; setDefs("title","test");

我想使用以下函数setDef()设置一个变量

我的例子不起作用。我该怎么办

    var defs = {
      title: document.title,
      action:   "pageview"
    };

    var setDefs = function(a,b) {
       defs.a= b;     // this: defs.title = b; is working.
    };

    setDefs("title","test");

使用括号表示法,
对象[变量]
,而不是:

var setDefs = function(a,b) {
       defs[a] = b;
};
此外,在对象中包含此方法更合适:

var defs = {
      title: document.title,
      action:   "pageview",
      setDefs: function(a,b) {
       this[a] = b; 
      }
};

defs.setDefs("title","test");

// > defs
// Object {title: "test", action: "pageview", setDefs: function}

谢谢你的提示,好主意。但是如果我把它包括在内,我就不能改变一个现存的汉堡,你是什么意思?使用原始代码,它只能向defs对象添加属性;将覆盖defs对象的“原点”属性。但是如果我考虑一下你关于在对象中包含setDefs的建议,它也会这样做。