如何在JavaScript中使用其名称字符串将对象作为参数传递?

时间:2017-06-10 07:38:32

标签: javascript

我有一个对象

bigRow = {size:'long', color:'pink'};

我们说我有另一个对象table,它具有row属性,例如

table = {
    row: 'bigRow',
    column: 'smallColumn'
};

我可以通过对象' bigRow'作为使用table属性值作为参考的函数的参数?

我可以写一些像

这样的东西吗?
function ( table.row )

就像

一样
function ( bigRow )

尽管两者都是function( bigRow ),但前者是一个字符串而没有任何与对象的连接

3 个答案:

答案 0 :(得分:2)

我不认为这样可能。但是,您可以将bigRow放在另一个对象中,如下所示:

var rowTypes = {
    bigRow : {size:'long', color:'pink'},
    //other rows if necessary...
}

然后使用字符串作为标识符访问rowTypes对象的成员:

function ( rowTypes[table.row] )

答案 1 :(得分:1)

是的,你可以但是你应该使用“this”关键字将对象设置为当前文档的属性。

<!DOCTYPE html>
<html>
 <body>
  <div id="demo"></div>
 </body>
</html>

<script>
 this.bigRow = {size:'long', color:'pink'};
 this.table = {
    row: 'bigRow',
    column: 'smallColumn'
 };

 function myFunction(myRow){
  document.getElementById('demo').innerHTML = myRow.size;
  console.log(myRow);
 }

 myFunction(this[table.row]);
</script>

https://jsfiddle.net/0p5afpj9/

答案 2 :(得分:0)

我遇到了answer to a similar question。显然,如果两个对象都是全局的,这将起作用:

function ( this[ table.row ] )