0

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

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

4

5 回答 5

2

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

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

$$.myFunction(); // hello
于 2013-08-06T16:36:15.450 回答
1

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

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

你可以很容易地做到

var $$ = {
    myFunction: function() {
        console.log("Foo");
    }
};
于 2013-08-06T16:36:45.793 回答
1

$只是一个变量名。

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

…但不要使用$$. $是一个愚蠢的变量名,它告诉阅读代码的人完全不知道它做了什么。$$有同样的问题。

于 2013-08-06T16:36:23.373 回答
0
$$ = function() {

};

$$.myFunction = function() {

};
于 2013-08-06T16:36:28.000 回答
0

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

一些常见的例子:

Math.round()- 引用roundJavaScript Math 对象 中的函数$.trim()- 引用trimJquery 的函数(默认情况下,使用$命名空间)

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

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

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

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

更多关于命名空间的信息:http: //addyosmani.com/blog/essential-js-namespacing/

于 2013-08-06T16:46:53.550 回答