我可以为函数创建自定义语法/前缀吗
Can I create a custom syntax/prefix for functions?
如何为函数创建自定义语法/前缀?
jQuery使用$.function
,有没有办法做到这一点,比如说$$.myFunction()
有效?
该语法只是对对象的方法调用:
var $$ = {
myFunction: function () {
return "hello";
}
};
$$.myFunction(); // hello
$
的全局对象,该对象包含多个函数。
它可以这样做,因为$
是一个有效的标识符。
你可以很容易地进行
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/
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- jQuery语法添加了var
- Javascript未捕获语法错误意外的标识符错误
- 为什么忽略了eval()代码中的语法错误
- 难以访问的JS环境中的语法错误
- 如何告诉MathJax对下标使用替代语法
- Javascript语法向设置发出sessionStorage值
- 未捕获的语法错误:意外的标记{
- 使用$scope方法时的ControllerAs语法
- "未捕获的语法错误:意外的标记}"
- javascript自执行函数-不同的语法
- 函数的Javascript语法
- jQuery's trim()的前缀为not运算符
- WinJS内联绑定语法
- 使用JS函数来使用另一个函数的语法?node.js
- 未捕获的语法错误:无法在“文档”上执行“查询选择器”
- 有没有针对带有表的JavaScript的Markdown语法解析器
- 在jquery中生成一个自动前缀编号
- 如果我在常规语法旁边包含供应商前缀,转换是否会应用两次
- 我可以为函数创建自定义语法/前缀吗