我可以为函数创建自定义语法/前缀吗?

时间:2013-08-06 16:34:33

标签: javascript

如何为我的函数创建自定义语法/前缀?

jQuery使用$.function,有没有办法可以做到这一点,所以说$$.myFunction()有效吗?

5 个答案:

答案 0 :(得分:2)

该语法只是对对象的方法调用:

var $$ = {
    myFunction: function () {
        return "hello";
    }
};

$$.myFunction(); // hello

答案 1 :(得分:1)

$只是一个变量名。

var $$ = {
    myFunction: function () { ... }
};

...但请勿使用$$$是一个愚蠢的变量名称,它告诉人们完全不知道它的作用。 $$有同样的问题。

答案 2 :(得分:1)

jQuery只是依赖于一个名为$的全局对象,它包含多个函数。

它可以这样做,因为$是有效的标识符。

你可以很容易地做到

var $$ = {
    myFunction: function() {
        console.log("Foo");
    }
};

答案 3 :(得分:0)

$$ = function() {

};

$$.myFunction = function() {

};

答案 4 :(得分:0)

所有这些答案都是正确的,但没有一个真正解释“为什么”。 。 。你所谈论的“语法/前缀”被称为“命名空间”,并且在大多数情况下你看到它,这是因为已经有一个JavaScript对象定义了它中定义的一组方法。

一些常见的例子:

Math.round() - 引用JavaScript Math对象中的round函数 $.trim() - 引用Jquery的trim函数(默认使用$命名空间)

这些是命名空间的“对象形式”,但您也经常看到“对象实例”形式。例如:

var myDate = new Date();
myDate.getFullYear();

在该示例中,myDate是JavaScript Date对象的一个​​实例,因此,通过调用myDate.getFullYear();,您实际上是将该函数命名为该特定实例,而不是对象本身。

因此,要回答您的问题,如果您希望将所有函数命名为命名空间,那么最简单的方法就像其他人所显示的那样。 。 。创建一个JavaScript对象并为该对象创建函数方法。

有关命名空间的更多信息,请访问:http://addyosmani.com/blog/essential-js-namespacing/