构造函数中的函数返回值

时间:2015-02-05 11:39:01

标签: javascript jquery function

在Javascript中,函数可以是构造函数的参数,但我想在创建新对象时分配一个条件值来进行求值。

var obj = {
  prop: function(){ return 1; },
  prop2: "asd"
};

console.log(obj.prop);  // This prints "function() ..." 

使用这种方法,有没有办法让道具值1?

对于那些想知道我为什么要这样做的人,我有以下代码,如果某些条件为真,我需要传递一个不同的偏移量参数。

$('#primary-menu > ul > li > a[href*=#]').smoothScroll(


{ preventDefault: true, easing: 'swing', speed: 700, offset: -200, exclude: ['.external a'],
    beforeScroll: function () {

        // Disable all waypoints on internal divs which are linked to from the menu
        $('#primary-menu > ul > li > a[href*=#]').each(function () {
            var element_id = MO_THEME.get_internal_link($(this).attr('href')); // Gives me ids of div's with ids like #work,#service, #portfolio etc.
            $(element_id).waypoint('disable');
        });
    },
    afterScroll: function () {
        // Enable all waypoints on internal divs which are linked to from the menu
        $('#primary-menu > ul > li > a[href*=#]').each(function () {
            var element_id = MO_THEME.get_internal_link($(this).attr('href')); // Gives me ids of div's with ids like #work,#service, #portfolio etc.
            $(element_id).waypoint('enable');
        });
    }});

1 个答案:

答案 0 :(得分:2)

您可以更改smoothScroll plugin after instantiation的任何选项:

  

初始调用后设置选项

     

如果您需要在调用.smoothScroll()后更改任何选项,可以将“options”字符串作为第一个参数并将options对象作为第二个参数传递。

$el.smoothScroll('options', {
  offset: newValue
});