在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开发人员在这种情况下的常见方式