【发布时间】:2018-09-24 21:03:25
【问题描述】:
我在某处创建了一个函数并将其绑定到this,这样我就可以在函数中使用父块的this 作为this 的值。例如:
var foo = function() {
// some stuff involving other stuff
}.bind(this);
我作为参数传递给bind 的this 是通过引用传递还是通过值传递?因此,如果我稍后在外部代码块中更改this 对象的参数,然后调用foo,foo 将在我调用bind 时使用this 的值,或者当时我打电话给foo?
【问题讨论】:
-
从技术上讲,有no pass-by-reference in javascript。不过,
this是对您的对象的引用,因此您将对象的引用传递给函数,因此如果您在函数内部更改this,那么原始对象也会发生变异。跨度> -
JavaScript 中的一切都是按值传递的,句号。按值传递引用与按引用传递不同。
-
你好@ibrahimmahrir。大多数高级编程语言将按引用传递作为按值传递指针。很明显这不是我要问的,因此它不是很有帮助。抱歉,我真的不明白你想在这里贡献什么。
-
这不是真的。它根本不实现传递引用。在这种情况下,无论
this是通过引用还是值传递,它所指向的对象的属性都是相同的,因为只有一个对象。如果你真的没有问你问什么,那么你应该把问题改成你问什么。 -
@fgb 你没有抓住重点——这个问题与 JavaScript 的“传递引用”是如何在幕后实际实现无关的。
标签: javascript binding this pass-by-reference pass-by-value