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

Can I create a custom syntax/prefix for functions?

本文关键字:前缀 语法 自定义 函数 创建 我可以      更新时间:2023-09-26

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

jQuery使用$.function,有没有办法做到这一点,比如说$$.myFunction()有效?

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

var $$ = {
    myFunction: function () {
        return "hello";
    }
};
$$.myFunction(); // hello
jQuery只是依赖于一个名为$的全局对象,该对象包含多个函数。

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

你可以很容易地进行

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

$只是一个变量名。

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

…但不要使用$$$是一个愚蠢的变量名,它告诉阅读代码的人它的作用。$$也有同样的问题。

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

所以所有这些答案都是正确的,但没有一个真正解释"为什么"。你所说的"语法/前缀"被称为"名称空间",大多数时候你看到它,这是因为有一个JavaScript对象已经定义了一组方法。

一些常见的例子:

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

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

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

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

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

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