在JavaScript中将参数作为指针传递

And*_*ech 7 javascript pointers

看看下面的代码:

var o;

(function (p) {
    p = function () {
        alert('test');
    };
})(o);

o(); // Error: 'o is not a function'
Run Code Online (Sandbox Code Playgroud)

在上面的函数中,我创建了一个带有一个参数的匿名函数,该函数使用先前创建的作为参数传递的对象进行自调用.然后我将这个对象指向一个函数(来自新范围内)并最终(尝试)从外部调用它.

我的问题是,如何通过引用传递该参数来更改它指向的指针?

moo*_*dow 12

您可以通过利用Javascript通过引用传递对象这一事实来实现您想要的效果:

var o = { };

(function (p) {
    p.fn = function () {
        alert('test');
    };
})(o);

o.fn();
Run Code Online (Sandbox Code Playgroud)

  • 实际上,"通过引用传递"在JavaScript中有点用词不当.相对于具有真正"引用"类型的其他语言,JavaScript不会*通过引用传递任何内容.它总是按价值传递.该值可能*持有*参考,这是我认为你想说的. (6认同)