【问题标题】:JavaScript: Create a method in a key in an object if input of the main function existsJavaScript:如果主函数的输入存在,则在对象的键中创建方法
【发布时间】:2022-01-07 11:14:00
【问题描述】:

我正在尝试创建一个变量 Youtube 对象,它将在 for 循环中进行模拟。

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

我在这里创建了函数:

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) 的键中创建函数。

你能帮忙吗?

【问题讨论】:

  • function (args[2], args[3]) - 这不是函数参数的工作方式
  • 所以你知道解构是如何工作的,还有模板文字,......但不知道如何定义函数的参数?
  • @Andreas 如果您知道如何提供帮助,那就太好了。否则,请忽略这篇文章,因为我写我的问题不是为了得到负面评论。要么给出建设性的意见,要么根本不发表评论。我真的很感激!
  • How much research effort is expected of Stack Overflow users? -> 如何定义一个函数,以及变量的作用域是什么是你要研究的两件事(可能顺序相反)。
  • 我不知道你的意思这不是函数的定义方式。根据示例,我看到这是定义函数的方式。如您所见gist.github.com/cookpete/…(

标签: javascript object youtube-api key


【解决方案1】:

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

  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;

【讨论】:

  • 当您在控制台 object1.events 中写入时,这给了我未定义
  • 你的意思是object1.event吗?没有属性 object1.events。
猜你喜欢
  • 2021-02-10
  • 2016-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-31
  • 1970-01-01
  • 2020-10-28
  • 1970-01-01
相关资源
最近更新 更多