使用JavaScript使用循环动态创建对象

汤玛士

我希望有人可以指出正确的方向。

我基本上是试图构建一个OOP解决方案,以基于一个类动态生成许多对象,然后能够通过类方法运行与每个对象相关联的方法。

下面是我的非动态代码。

// Create videoObject class
function videoObject(videoTag, videoNum){
    this.videoTag = videoTag;
    this.videoNum = videoNum;
    this.videoTagHref = videoTag.attr("href");
    this.videoId = function(videoTag){
    };
    this.addAttrId = function(videoNum){
    };
    this.printObjectInfo = function(videoId){
    };
    this.embedVideo = function(videoId, videoTag, videoNum){
    };
    this.buildControls = function(videoTag){
    };
};

// Manually create two objects and run class methods
var newVideo1 = new videoObject($('.yt-player-0'), 0);
newVideo1.videoId();
newVideo1.addAttrId();
newVideo1.embedVideo();
newVideo1.buildControls();

var newVideo2 = new videoObject($('.yt-player-1'), 1);
newVideo2.videoId();
newVideo2.addAttrId();
newVideo2.embedVideo();
newVideo2.buildControls();

// I want to somehow create newVideo1 and newVideo2 dynamically inside a loop like below
var length = $('.yt-player').length;

for (var i = 0; i < length; i++) {

}

大家能给我的任何帮助将不胜感激。

谢谢,

汤姆

它的ikem

我会尝试这个(未经测试的):

// Create videoObject class
function videoObject(videoTag, videoNum){
    this.videoTag = videoTag;
    this.videoNum = videoNum;
    this.videoTagHref = videoTag.attr("href");
    this.videoId = function(videoTag){
    };
    this.addAttrId = function(videoNum){
    };
    this.printObjectInfo = function(videoId){
    };
    this.embedVideo = function(videoId, videoTag, videoNum){
    };
    this.buildControls = function(videoTag){
    };
    // call these methods in your constructor instead of repeatedly from elsewhere
    this.videoId();
    this.addAttrId();
    this.embedVideo();
    this.buildControls();
    // send back a reference to this newly created video object to the loop
    return this;
};

// create an array of video object references
var videoObjectReferences = [];
for (var i=0;i<10;i++){
    // building ten video objects here, with ids of: yt-player-0, yt-player-1, etc.
    // build a selector to reference them via id, not by class with a dot as you have in your question
    var sel = String("#yt-player-" + i);
    // create the object and store a reference to the video object so you can do something with it later
    var newVid = new videoObject($(sel), i);
    // build list of references
    videoObjectReferences.push(newVid);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Javascript访问动态创建的对象

来自分类Dev

如何使用Javascript创建动态对象?

来自分类Dev

使用jinja / javascript动态创建方法/对象

来自分类Dev

使用条件循环创建Javascript对象

来自分类Dev

在 JavaScript 中使用 for 循环创建对象数组

来自分类Dev

使用for循环html javascript为动态数据创建动态表

来自分类Dev

动态创建的对象使用基于范围的for循环显示为nullptr

来自分类Dev

使用循环将值设置为动态创建的对象

来自分类Dev

如何使用循环创建动态对象键/值?

来自分类Dev

使用for循环动态创建数组

来自分类Dev

使用循环计数器,如何动态创建对象并使用计数器命名对象?

来自分类Dev

使用动态键创建对象

来自分类Dev

使用动态数组创建对象

来自分类Dev

如何使用javascript中的Onclick属性动态创建对象

来自分类Dev

如何使用for循环创建对象

来自分类Dev

如何使用for循环创建对象

来自分类Dev

使用循环创建对象链

来自分类Dev

使用javascript动态嵌入对象

来自分类Dev

使用JavaScript创建动态div

来自分类Dev

使用循环引用动态创建graphql模式

来自分类Dev

使用javascript循环对象数组

来自分类Dev

动态创建JavaScript对象

来自分类Dev

javascript:动态创建对象

来自分类Dev

创建动态对象 Javascript

来自分类Dev

使用递归创建动态嵌套的json对象

来自分类Dev

使用键从集合动态创建树对象

来自分类Dev

无法使用TypeScript创建动态对象

来自分类Dev

使用Object.create()动态创建对象

来自分类Dev

如何使用动态属性名称创建对象