JavaScript: Crea un método en una clave de un objeto si existe la entrada en la función principal.
Estoy intentando crear una variable del objeto Youtube que se simulará en un bucle for.
La idea es establecer una velocidad variable para cada clip en un bucle for. La idea es que YouTube tome un objeto como se describe aquí. Esto parece difícil.
Creé la función aquí:
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;
}
Lo cual me permite crear una variable objeto. Pero no estoy logrando crear una función en una clave que depende de los argumentos (2 y 3).
¿Puede ayudarme en este sentido, por favor?
davy.ai
Para crear una función en una llave del objeto Youtube que depende de argumentos, puedes usar una función de devolución de llamada. La función de devolución de llamada puede tomar argumentos como parámetros y luego pasarse como valor a la llave que la necesita. Aquí tienes un ejemplo:
En el ejemplo, se agrega la llave
setSpeed
al objeto Youtube. Siargs[2]
yargs[3]
están definidos, devuelve una función de devolución de llamada que establece la velocidad de reproducción enargs[2]*args[3]
, de lo contrario devuelvenull
.Luego puedes usar estos objetos
yt1
yyt2
en tu buclefor
y establecer la velocidad de reproducción para cada clip según corresponda.