2013-08-06 71 views
0

如何为我的功能创建自定义语法/前缀?我可以为函数创建自定义语法/前缀吗?

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

+0

所有这意味着是它是从一个对象 – aaronman

+0

调用一个函数'$'是不是一个自定义的“语法”。 '$'是Javascript中实体名称的有效字符。 – Nadh

+0

[为什么“$”是一个有效的函数标识符?](http://stackoverflow.com/questions/4795551/why-is-a-valid-function-identifier) – Bergi

回答

1

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

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

你可以很容易地做到

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

即语法是只是一个对象上的方法调用:

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

$$.myFunction(); // hello 
1

$仅仅是一个变量名。

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

...但是不要使用$$$是一个愚蠢的变量名称,它告诉人们阅读代码时完全不知道它的功能。 $$也有同样的问题。

0
$$ = function() { 

}; 

$$.myFunction = function() { 

}; 
0

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

一些常见的例子:

Math.round() - 引用JavaScript的数学内round函数对象 $.trim() - 引用trim功能的jQuery(其中,默认情况下,使用$命名空间)

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

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

在这个例子中,myDate是JavaScript Date对象的实例,因此,通过调用myDate.getFullYear();,你是真正的命名空间,其功能是将Date对象,它特定实例,而不是对象本身。

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

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

相关问题