尝试了解此关键字的工作原理。例如,在这段代码上,这个是指“按钮”吧? (或点击按钮的动作)。 谢谢
$(document).ready(function(){
$("button").on("click", function(){
var discount = $(this).closest(".tour").data("discount");
var message = $("<span>Call 1-555-jquery-air for a $discount discount.</span>");
$(this).closest(".tour").append(message);
$(this).remove();
});
});
HTML here:
<div id="tours">
<h1>Guided Tours</h1>
<ul>
<li class="usa tour" data-discount="299">
<h2>New York, New York</h2>
<span class="details">$1,899 for 7 nights</span>
<button class="book">Book Now</button>
</li>
<li class="europe tour" data-discount="176">
<h2>Paris, France</h2>
<span class="details">$2,299 for 7 nights</span>
<button class="book">Book Now</button>
</li>
<li class="asia tour" data-discount="349">
<h2>Tokyo, Japan</h2>
<span class="details">$3,799 for 7 nights</span>
<button class="book">Book Now</button>
</li>
</ul>
</div>
答案 0 :(得分:3)
在该代码中,this
是对所单击元素的引用(实际的DOM button
元素)。 $(this)
是一个函数调用,将this
传递给$()
并返回一个jQuery对象。该jQuery对象是DOM元素的包装器。
因此代码使用相同的参数重复调用$()
。在这种情况下,它并不是特别有害,但是如果你处于紧张的环境或其他事情中,你想要将其称为一次并保留对结果的引用。< / p>
答案 1 :(得分:1)
在JavaScript中,与大多数面向对象的编程语言一样,this
是一个特殊的关键字,在方法中用于引用调用方法的对象。 this
的值是使用一系列简单步骤确定的:
Function.call()
或Function.apply()
调用该函数,则this
将设置为传递给.call()
/ .apply()
的第一个参数。如果传递给.call()
/ .apply()
的第一个参数是null
或undefined
,this
将引用全局对象(window
Web浏览器中的对象)。Function.bind()
创建的,this
将是在创建函数时传递给.bind()
的第一个参数。this
将引用该对象。this
将引用全局对象。参考this URL
答案 2 :(得分:0)
通常,this关键字类似地用于引用函数(使用它的地方)绑定的对象。 this关键字不仅引用了对象,还包含了对象的值。