JavaScript:如果存在主函数的输入,则在对象的键中创建一个方法



我正在尝试创建一个将在for循环中模拟的变量Youtube Object。

这个概念是,我想为for循环中的每个剪辑设置一个可变的速度。这个想法是YouTube接收一个如这里所描述的对象。这似乎很难。

我在这里创建了函数:

function YTObjects(videoId1, ...args) {
let object1 = {
height: "315",
width: "560",
videoId: videoId1,
playerVars: {
autoplay: 0,
loop: 1,
...(typeof args[0] !== "undefined" && { start: `${args[0]}` }),
...(typeof args[1] !== "undefined" && { end: `${args[1]}` }),
},
if ((typeof args[2] !== "undefined") && (typeof args[3] !== "undefined")) {
event: function (args[2], args[3]) {
player.setPlaybackRate(args[2]*args[3]);
},
}
};
return object1;
}

这使我能够创建一个变量对象。但是我没能在一个依赖于参数(2和3(的键中创建一个函数。

你能在这方面帮忙吗?

使用三元运算符有条件地分配event属性,或者在定义对象后使用if。您可能不希望在正在添加的匿名函数中有任何params。

let object1 = {
height: "315",
width: "560",
videoId: videoId1,
playerVars: {
autoplay: 0,
loop: 1,
...(typeof args[0] !== "undefined" && { start: `${args[0]}` }),
...(typeof args[1] !== "undefined" && { end: `${args[1]}` }),
},
event: ((typeof args[2] !== "undefined") && (typeof args[3] !== "undefined"))
? function () {
player.setPlaybackRate(args[2]*args[3]);
},
: undefined
};
return object1;

let object1 = {
height: "315",
width: "560",
videoId: videoId1,
playerVars: {
autoplay: 0,
loop: 1,
...(typeof args[0] !== "undefined" && { start: `${args[0]}` }),
...(typeof args[1] !== "undefined" && { end: `${args[1]}` }),
}
};
if ((typeof args[2] !== "undefined") && (typeof args[3] !== "undefined")) {
object1.event = function () {
player.setPlaybackRate(args[2]*args[3]);
};
}
return object1;

相关内容

  • 没有找到相关文章

最新更新