为什么我的 JavaScript 中有一个 $
Why is there a $ in my javascript?
>我有以下内容:
var doHandler = function (link, form, close) {
var $form = form;
var $link = link;
var dialogTitle = $form.find("#Title").val();
// some code
}
我想将其更改为:
function doTask(??) {
var dialogTitle = $form.find("#Title").val();
// some code
}
var doHandler = function (link, form, close) {
var $form = form;
var $link = link;
doTask(??)
}
有人可以解释一下:
- "var $form = form;"在做什么
- 我应该将什么参数传递给 doTask $form 或表单?
- doTask 中的第一行引用是否应该$form或表单
- 如果函数位于同一文件中,是否需要在调用之前声明该函数?
抱歉,这真的很令人困惑,有什么区别以及为什么有 $
作业似乎$form = form
您发布的代码中没有任何作用,但这取决于// some code
做什么。
变量名称前面加上 $
的约定用于表示变量包含 jQuery 对象。
如果代码改为读取
var $form = $(form);
那么这将解释一切:$form
是一个包装form
的jQuery对象(大概是一个普通的DOM元素)。
对于您的其他问题:
- 您应该传递
doTask
完成工作所需的任何参数 doTask
是否在源中doHandler
之前并不重要
这是声明 jQuery 对象的命名标准。
因此,通过分配一个 $,您现在可以让变量保存 jQuery 选择器的结果。
下面是一个如何简化流程的简单示例:
http://jsfiddle.net/YYNeA/16/
var $form = form;
var $link = link;
这些是定义的变量。您可以声明包含 $ 的变量。
$form是一个变量对象。 如果你想把它做成jQuery对象。用jquery包围。
例如:$(form)
//现在这是jquery对象
变量名称中的$
没有什么特别之处,这可以用于任何变量。
但是,正如@Jon所指出的,以$
为前缀的一般约定是声明jQuery对象。
$
可以像任何其他有效字符一样在变量名称中使用,并且包含$
的变量名称在语言中没有特殊含义。
由于表单和链接的变量是局部变量,因此必须将它们传递给函数才能使用它们。
函数不必在使用它的代码之上定义,只要它位于相同(或上一个)文件或相同(或上一个)脚本块中即可。
在doTask
函数中,你既不使用变量form
也不使用变量$form
,因为它们都是doHandler
函数的局部。使用发送到函数的参数。这个参数也可以命名为 form
或 $form
,但它也可以被命名为完全不同的名称。
var doHandler = function (link, form, close) {
var $form = form;
var $link = link;
doTask($form, $link);
};
function doTask(someForm, someLink) {
var dialogTitle = someForm.find("#Title").val();
// some code
}
但是,将参数link
和form
复制到局部变量$link
和$form
似乎毫无意义。您也可以使用这些参数:
var doHandler = function (link, form, close) {
doTask(form, link);
};
function doTask(someForm, someLink) {
var dialogTitle = someForm.find("#Title").val();
// some code
}
$
字符只是定义变量时可以使用的有效字符。
当对象本身是 jQuery 对象时,我通常使用附加到变量的 $
字符。 除此之外,它没有附加其他信息。
var $form
表示您正在声明一个变量名$form
var $form = form
意味着您将表单值分配给变量$form
与您的$link相同
- 是否有一个javascript库来解析简单的查询
- 我制作html网站的一小部分——我有一个javascript部分
- 可能有一个javascript和php的配置文件
- 我有一个javascript类和该类的对象,我想将该对象存储在本地存储中并检索它
- 是否有一个 JavaScript 加载器可以将套接字的数量限制为 1 或 2
- 是否有一个Javascript函数可以使代码在运行时延迟
- 是否有一个JavaScript / Jquery组件可以创建一个像Eclipse一样的工作空间
- 是否有一个 javascript 库可以在图像上注释并将注释另存为服务器中的图像
- 是否有一个JavaScript IDE允许在所有三种浏览器(IE,FF,Chrome)中进行调试
- 是否有一个JavaScript库可以在没有UI的情况下进行电子表格计算
- 我有一个javascript倒计时,但我需要倒计时才能从我的sql数据库中获取日期
- 是否有一个 JavaScript 或 Lodash 函数可以轻松迭代成对或三元组
- 是否有一个 javascript 客户端库用于对具有存储支持的 ajax 请求进行排队
- 我有一个javascript函数,我可以'Don't tell what I;我做错了
- 我有一个javascript函数,可以将数字添加到数组中
- 我可以有一个javascript对象从内存中删除自己设置它的映射值为空
- 是否有一个javascript函数将字符转换为&代码;等价的
- 是否有一个JavaScript/css的方法,使同步滚动区域类似于"meld"
- 是否有一个JavaScript库说度而不是弧度
- 是否可能有一个Javascript函数有两个或更多的函数在里面