访问javascript中的扩展对象

访问javascript中的扩展对象,javascript,jquery,object,instantiation,Javascript,Jquery,Object,Instantiation,我在创建有用事物的实例时遇到了一些困难 从另一个JS文件中,我想更改 实例并使用这些方法。或者你建议的任何东西,如果不是的话 可能的这个扩展和这个构造让我很困惑 (function($) { $.extend({ usefulThings: new function() { this.defaults = { prop_path:'/la/lala', //OTHER STUFF }; th

我在创建有用事物的实例时遇到了一些困难 从另一个JS文件中,我想更改 实例并使用这些方法。或者你建议的任何东西,如果不是的话 可能的这个扩展和这个构造让我很困惑

(function($) {

$.extend({
    usefulThings: new function() {
        this.defaults = {
            prop_path:'/la/lala',
            //OTHER STUFF
        };
        this.construct = function(options) {
            return this.each(function() {
                var setting;
                this.settings = {};
                settings = $.extend(this.settings, $.usefulThings.defaults, options);
                $this = $(this);

                //OTHER STUFF
                $.data(this, "usefulThings",settings);
                // FIRST METHOD CALL
                //OTHER STUFF
            });
        };
        //SOME METHODS
    }
});
$.fn.extend({
    usefulThings: $.usefulThings.construct
}); 
})(jQuery);      
我见过从脚本块调用的有用的东西,如:

$("#myDivName").usefulThings({
  prop_path: '/la/lala' //these seems to get overwritten in the above
});
首先,看一看。在的jQuery文档中

接下来,检查以了解构造方法

然后,您应该注意到在这种情况下使用
new
关键字是绝对不合适的。表达式应替换为简单的对象文字:

{
    defaults: {
        prop_path:'/la/lala',
        // …
    },
    construct: function(options) {
        …
    },
    //SOME METHODS
}
现在,我们开始讨论这个问题。文件中的相关句子是

如果只向
$.extend()
提供了一个参数,则表示忽略了
目标
参数。在这种情况下,假定
jQuery
对象本身就是目标。通过这样做,您可以向
jQuery
名称空间添加新函数。这对于希望向JQuery添加新方法的插件作者来说非常有用


对于
$.fn.extend
(实际上是
==$.extend
)也是一样的,它扩展了
jQuery.fn
对象,它是jQuery原型对象的快捷方式。

我查看了您编写的所有内容,内容非常丰富。我学到了一些东西。最终,我的问题是,当我试图调用包含有用内容的文件时,该文件尚未加载。我将它包装在window.onload=function(){$(“#myDivName”).usefulThings({prop_path:'/la/lala'});}中,它成功了。我觉得好像有人叫我清理我的缓存。现在感觉自己是真正的新手。