如何使用;这";在javascript中?这是为了什么

如何使用;这";在javascript中?这是为了什么,javascript,Javascript,我浏览了很多网站,但学习速度很慢,我无法理解这个的正确含义,请澄清我的疑问 <input type='checkbox' name="checkbox[]" onclick="whole_delete(this)" id="checkbox[$id]" value="<?php echo $store['id'];?>"/> function whole_delete(source) { checkboxes = document.getElementsByN

我浏览了很多网站,但学习速度很慢,我无法理解
这个
的正确含义,请澄清我的疑问

<input type='checkbox'  name="checkbox[]" onclick="whole_delete(this)" id="checkbox[$id]" value="<?php echo $store['id'];?>"/>

function whole_delete(source) {  
  checkboxes = document.getElementsByName("checkbox[]");  
  for(var i=0, n=checkboxes.length;i<n;i++) {
    checkboxes[i].checked = source.checked;
  }
}

引用正在执行代码的当前上下文。在您的复选框示例中,
this
引用该复选框,因此当您将
this
传递给整个_delete函数时,它来自的特定复选框将被传入并命名为
source
。然后,下面的代码检查是否选中了该复选框


如果页面上有20个复选框,它们都可以使用
onclick=“whole_delete(this)”
,而
this
将始终将引用传递给事件来源的特定复选框。

让我们以此列表为例:

<label>Album 1. Delete all? <input type="checkbox" onclick="whole_delete(this)"></label>
<ul>
    <li>Photo 1. Delete? <input type="checkbox"></li>
    <li>Photo 2. Delete? <input type="checkbox"></li>
    <li>Photo 3. Delete? <input type="checkbox"></li>
    <li>Photo 4. Delete? <input type="checkbox"></li>
</ul>
在本例中,
是对您刚才单击的复选框的引用。您正在将HtmleElement作为参数传递给javascript函数
whole\u delete
.checked
是一个属性,指示复选框是否选中


因此,当调用该函数时,它将查找页面中的所有复选框,并使其与刚才单击的相册复选框相同。如果选中,将检查所有照片。如果未选中,则将取消选中所有照片。

构造是对当前对象上下文的引用。当程序的上下文在整个执行过程中发生变化时,它实际指向的是变化

在您的例子中,它是对表示单击的特定复选框的JavaScript对象的引用。当然,如果您稍后单击另一个复选框,它将更改为指向该对象,因为上下文已更改

source
则是表示复选框的domeElement&选中了一个属性,该属性的值为true或false,具体取决于复选框是否选中


有关DOMElememts的详细信息,请参见

“this”是您关注的对象/元素。@hicurin:
$
是jquery(和其他)中的关键字/fn抱歉!但是我想避免使用英语中的“this”一词:如果您想区分英语中的this和JavaScript中的this,请使用code(
`this`
)标记。
onclick="whole_delete(this)