如果我不想使用'this'作为对象并直接编写函数而不将'this'作为对象传递并直接在函数中编写this.src=""为什么这不起作用?
<body>
<script type="text/javascript">
function picture(yolo){
yolo.src="3Nail.jpg";
}
function normal(yolo) {
yolo.src="4Nail.jpg";
}
</script>
<img onmouseover="picture(this)" onmouseout="normal(this)" src="1nail.jpg" alt="n1"/>
<img onmouseover="picture(this)" onmouseout="normal(this)" src="2nail.jpg" alt="n2"/>
最佳答案
由于这些函数不与事件处理程序关联,因此它们的 this
引用全局窗口对象。为了避免必须使用变量 yolo 作为参数,您可以通过使用 call
以 this 作为上下文来调用函数,从而为函数提供 this 绑定(bind),如下所示.
js
function picture(){
this.src="3Nail.jpg";
}
function normal() {
this.src="4Nail.jpg";
}
html
<img onmouseover="picture.call(this)" onmouseout="normal.call(this)" src="1nail.jpg" alt="n1"/>
<img onmouseover="picture.call(this)" onmouseout="normal.call(this)" src="2nail.jpg" alt="n2"/>
关于javascript - 什么时候需要在 javascript 函数中传递对象作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36705616/