在Javascript中将参数传递给对象内部的函数

在Javascript中将参数传递给对象内部的函数,javascript,dom,dom-events,javascript-objects,Javascript,Dom,Dom Events,Javascript Objects,我很确定以前有人问过这个问题,但我找不到任何与我的案件有关的东西 这是我的函数 function change(prop) { document .querySelector("img") .style.setProperty(`--${prop}`, `${this.value}px`); } spacing.onchange = change; blur.onchange = change; 我正在努力将参数传递给chang

我很确定以前有人问过这个问题,但我找不到任何与我的案件有关的东西

这是我的函数

function change(prop) {
    document
      .querySelector("img")
      .style.setProperty(`--${prop}`, `${this.value}px`);
  }

  spacing.onchange = change;
  blur.onchange = change;

我正在努力将参数传递给change函数,因为如果我执行spacing.onchange=changeprop,函数将立即执行。我想避免使用addEventListener。问题是,如何将参数传递给函数?

尝试将变量设置为函数定义

spacing.onchange = function change(prop) {
    document
      .querySelector("img")
      .style.setProperty(`--${prop}`, `${this.value}px`);
  }

spacing.onchange(arg);

尝试将变量设置为函数定义

spacing.onchange = function change(prop) {
    document
      .querySelector("img")
      .style.setProperty(`--${prop}`, `${this.value}px`);
  }

spacing.onchange(arg);
spacing.onchange=change.bindspacing,‘prop’; spacing.onchange=change.bindspacing,‘prop’;
您可以通过使用高阶函数特性来解决这个问题

function change(prop) {
  return function() {
    document
      .querySelector("img")
      .style.setProperty(`--${prop}`, `${this.value}px`);
  }
}

// for example
spacing.onchange = change(/*Your prop*/);
blur.onchange = change(/*Your prop*/);

您可以通过使用高阶函数特性来解决这个问题

function change(prop) {
  return function() {
    document
      .querySelector("img")
      .style.setProperty(`--${prop}`, `${this.value}px`);
  }
}

// for example
spacing.onchange = change(/*Your prop*/);
blur.onchange = change(/*Your prop*/);
试试这个:

function onChanges (variables,props) {
variables.forEach((variable, index) => {
variable.onChange=function(event){
    return change(props[index]);
}
});
}

onChanges([spacing,blur],[prop1,prop2]);
试试这个:

function onChanges (variables,props) {
variables.forEach((variable, index) => {
variable.onChange=function(event){
    return change(props[index]);
}
});
}

onChanges([spacing,blur],[prop1,prop2]);

您的意思是将参数传递给,而不是从?您的代码中需要有一个高阶函数,以便解决您的问题problem@GirkovArpa非常感谢。是的,打错了bit@SaymoinSam确切地说是在哪里?你不是说把参数传递给,而不是从中传递吗?你需要在你的代码中有一个高阶函数来解决你的问题problem@GirkovArpa非常感谢。是的,打错了bit@SaymoinSam具体在哪里?谢谢你,但是想象一下有100个像物体一样的间隔。手动将函数添加到它们中的每一个是非常感谢您的,但是想象一下有100个类似对象的间距。手动将功能添加到其中的每一个功能中,非常感谢您的帮助。我认为这是最方便的方法。是的,这是JavaScript开发人员在这种情况下常用的方法。谢谢你,真的帮了大忙。我认为这是最方便的方式。是的,这是JavaScript开发人员在这种情况下的常见方式