2017-03-02 83 views
0

我正在尝试使用chWidth()menu: "#menu"传递给匿名对象。如何使用函数将对添加到匿名对象?

我该怎么做?

$('#fullpage').fullpage({verticalCentered: false}, chWidth()); 


    function chWidth() { 
     if ($(window).width()) { 
      return {menu: "#menu"} 
     } 
    } 

所以应该结束这样的:
{ verticalCentered:假的, 菜单: “#menu” }

应该如何return语句是什么?我收到一个错误,如果我尝试return menu:"#menu"

回答

0

您的return声明正常。

如果你使用jQuery,您可以使用$.extend这样的:

$('#fullpage').fullpage($.extend({verticalCentered: false}, chWidth())); 

或者您可以使用Object.assign像这样(但你会失去对旧的浏览器支持):

$('#fullpage').fullpage(Object.assign({verticalCentered: false}, chWidth())); 
+0

如果你不把它标记为欺骗呢? – Rajesh

+0

@Rajesh我没有做一个检查欺骗 - 不知道它是否是。通过20秒来添加答案就像搜索重复项一样简单。 – winhowes

0

首先,你的chWidth具有稳固的回报点。
您应该在else分支中返回相同类型(对象)。

要合并的对象,你可以使用Object.assign方法:

function chWidth(cond) { 
 
    // use cond for emulate both boolean cases 
 
    if (cond) { 
 
     return {menu: "#menu"}; 
 
    } else { 
 
    return {}; 
 
    } 
 
} 
 

 
console.log(Object.assign({verticalCentered: false}, chWidth())); 
 
console.log(Object.assign({verticalCentered: false}, chWidth(true)));