Javascript 为jQuery编写一个名称空间函数,该函数对参数而不是选择器进行操作

Javascript 为jQuery编写一个名称空间函数,该函数对参数而不是选择器进行操作,javascript,jquery,jquery-plugins,prototype-programming,Javascript,Jquery,Jquery Plugins,Prototype Programming,我一直想在jQuery中启动一个函数库,以便在代码中横向使用 我认为这样做的一个好方法是构建jQuery名称空间并添加我的 方法(并为所有愿意贡献的人提供名称空间)。 这就是我想到的: (function( $ ) { $.extend ({ mynamespace: { myfunction: function(a, b) { if (!Math.prototype.

我一直想在jQuery中启动一个函数库,以便在代码中横向使用
我认为这样做的一个好方法是构建jQuery名称空间并添加我的
方法(并为所有愿意贡献的人提供名称空间)。
这就是我想到的:

(function( $ )
{
    $.extend
    ({
        mynamespace:
        {
            myfunction: function(a, b)
            {
                if (!Math.prototype.newmethod)
                {
                    Math.prototype.newmethod = function(c, d)
                    {
                        // newmethod code
                    }
                }
                // myfunction code (uses Math.newmethod)
            }
        }
    })
})(jQuery);
现在,这在我最初调用它的小测试文件中运行良好(代码按照我的要求执行),但在执行之后,我得到了以下错误:

DOM异常:
无效字符错误(5)

我忽略了它,不知道它是从哪里来的,也不知道如何修复它(我在网上找到的一些参考资料与我没有使用的IE9相关),但当我在整个网站上使用我的新代码时,一切都开始中断,出现了错误消息,例如

未捕获类型错误:未定义不是函数

未捕获类型错误:对象函数(c,d){//newmethod code}

任何关于我做错了什么的想法都欢迎

附加说明
我调用上述代码的方式是:

var temp = $.mynamespace.myfunction(a, b);    

在调试器下运行代码,并告诉它在出现异常时暂停。这将帮助您找出问题的根源。我不确定是否理解您为什么要使用jQuery命名空间?你可以很容易地提供你自己的,这可能会使事情变得更容易。我知道意见不同,但我可能会创建一个名空间,其中包含一个
Math
对象,该对象可以保存所有与数学相关的方法,而不是扩展Math对象我只是想一想。这是一个很好的建议(正如您所暗示的,这是一个设计选择)。在这一点上,我只是挂断了对这件事的了解。我可以像你建议的那样做一些变通,但是现在我被赋予了这个任务,我想在这个过程中学习一些新的东西。无论如何,我不认为数学原型是个问题。而是将数学原型与jQuery扩展结合起来。如果我不得不猜测的话,我会说我的问题与我的代码覆盖了其他代码(在jQuery库中)有关,我想学习如何避免这种情况。re:missingno。我以前试过。这是jQuery中的一些函数。我必须下载可读的jQuery并正确调试它。谢谢你觉得我所做的有什么明显的语法问题吗?嗨<代码>数学不是函数,因此没有原型属性<代码>数学原型//空。更改javascript对象的原型通常是一个坏习惯,如果您是唯一在自己的函数中使用它的人,则更是如此。