javascript - 使用javascript OOP中的方法动态获取属性

标签 javascript oop

<分区>

如果我创建一个类 SONG(),并定义许多属性,我如何创建一个方法来使用传递的参数并获取该属性?

function SONG(i) {

    /* properties */
    this.title      = results.title[i];
    this.artist     = results.artist[i];
    this.album      = results.album[i];
    this.info       = results.info[i];

    /* methods */
    this.getstuff = function(stuff){
        console.log(this.stuff); // doesn't work
    }
}

var song1 = new SONG(1);

song1.getstuff(title);  
// how can I have this dynamically 'get' the property passed through as an argument?

非常感谢任何帮助或建议!

最佳答案

也许这就是您想要的:( JSFiddle )

function SONG(i) {
    /* properties */
    this.title      = "My Title";
    this.artist     = "My Artist";
    /* methods */
    this.getstuff = function(stuff){
        if (this.hasOwnProperty(stuff))
            return this[stuff];
        else
            return null;
    }
}

var song1 = new SONG(1);

console.log(song1.getstuff("title"));  
console.log(song1.getstuff("invalid"));  

但请注意,我们将 "title" 作为字符串传递。此外,还需要在 getstuff 中进行检查以验证 SONG 确实具有所请求的属性,因此需要检查 hasOwnProperty

关于javascript - 使用javascript OOP中的方法动态获取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14731972/

相关文章:

javascript - 在 React 中使用 fullcalendar v4 导入 rrule 插件

javascript - 为什么我的 Canvas 填充图案会重复/重叠?

c++ - 在类函数中访问 vector 的元素

methods - 返回接收者本身(Go)的方法的目的是什么?

javascript - 使用 OpenUI5 或更多 SAPUI5/OpenUI5 演示应用程序的开源项目

javascript - map 框中的旋转点倾斜

javascript - 页面上有多个按钮 - 不起作用

ios - 模态创建类对象和设置值

php - 如何运行 mysqli 查询?

python - 特殊的 __init__() 方法