如何获取传递给作为对象属性的函数的参数?

时间:2021-03-31 17:16:47

标签: javascript function

我有一个具有函数属性的对象:

示例:

const obj = {func: function() {console.log('I am a function in an object')}};

当我调用这个函数时,我会通过 obj.func() 调用它。如果我想向这个函数传递更多参数,我该如何访问它们?我试过了:

const obj = {
  func: function() {
    const args = [...arguments];
    console.log(args);
  }
}

所以当我调用 obj.func(arg1, arg2) 时,我希望它记录 arg1arg2 是什么,但是这个调用返回 obj 作为单个参数。我还没有找到关于此的任何其他答案。顺便说一句,我是 javascript 新手。

3 个答案:

答案 0 :(得分:1)

只需将其粘贴为值...

const obj = {
  func: function() {
    const args = [...arguments];
    console.log(args);
  }
}


obj.func("value1","value2")
或者像这样
const obj = {
  func: function(arg1,arg2) {
    const args = [arg1,arg2];
    console.log(args);
  }
}


obj.func("value1","value2")

const obj = {
  func: function() {
    const args = [arguments[0],arguments[1]];
    console.log(args);
  }
}


obj.func("value1","value2")

答案 1 :(得分:1)

只需使用循环和 arguments 即可立即访问您的函数参数。这是对您的功能的更改:

const obj = {
  func: function() {
    for (var iteration=0; iteration<arguments.length; iteration++) 
      console.log(arguments[iteration]);
  }
}

答案 2 :(得分:0)

不需要 arguments 变量的更简单的选项如下:

const obj = {
  func: (...args) => {
    console.log(args);
  }
};

obj.func("value1", "value2");

相关问题