Javascript函数调用语法

Javascript function calling syntax

本文关键字:语法 函数调用 Javascript      更新时间:2023-09-26
(function($,window,undefined) {
    $.fn.simplyScroll = function(options) {
        return this.each(function() {
            new $.simplyScroll(this,options);
        });
    };
    var defaults = {
        customClass: 'simply-scroll',
        frameRate: 30, //No of movements per second
        speed: 2, //No of pixels per frame
        orientation: 'horizontal', //'horizontal or 'vertical' - not to be confused with device orientation
        auto: true,
        autoMode: 'loop', //auto = true, 'loop' or 'bounce',
        manualMode: 'end', //auto = false, 'loop' or 'end'
        direction: 'forwards', //'forwards' or 'backwards'.
        pauseOnHover: false, //autoMode = loop|bounce only
        pauseOnTouch: true, //" touch device only
        pauseButton: false, //" generates an extra element to allow manual pausing 
        startOnLoad: false //use this to delay starting of plugin until all page assets have loaded
    };

嗨,我很新的javascript和语法,特别是函数明智。当它被包装在这样的函数中时,我如何在默认对象中获得auto的值?

我知道get auto会是默认值。auto,但由于该函数没有命名,我不确定如何进入它。我计划稍后在外部javascript文件中更改值。

如果代码位于函数外部,则无法获得此值,除非该函数将对象存储在defaults变量中,并且可以通过全局变量访问该对象。这是由于JavaScript函数的工作方式——函数外部的代码对该函数的局部变量没有访问权限。(这与其他编程语言没有太大区别。)

如果你的目标只是改变值而不是获取默认值,大多数jQuery插件将允许你传入一个对象,其属性将覆盖默认设置。根据插件的名称,你可以这样做:

$("#something").simplyScroll({
    auto: false
});

在我看来,有两种方法可以让您在此函数作用域之外访问defaults对象

1。在函数作用域中,defaults对象将被赋值给全局对象(= window)的属性

...
// In the function scope
window.defobject = defaults;
...
例如:

(function($, window, undefined) {
    var defaults = {
        foo : "bar"
    };
    window.defobject = defaults;
})(jQuery, this);
console.print(defobject); // This is valid with no error

2。函数最终返回这个对象作为输出

...
// In the function scope
return defaults;
例如:

var defobject = (function($, window, undefined) {
    var defaults = {
        foo : "bar"
    };
    return defaults;
})(jQuery, this);
console.print(defobject); // This is also valid with no error