在 JavaScript 中通过引用传递(调用方法)
Passing by Reference in JavaScript(Call Method)
我在这里的问题,我不明白名为"objectchanger"的方法是如何工作的这是来源
function test()
{
this.value=5;
}
test.prototype.Add=function()
{
this.value++;
};
var obj = new test();
obj.Add();
alert(obj.value);
function objectchanger(fnc, obj)
{
fnc.call(obj);
//obj.fnc(); >> without this line of code it works fine but why?????
//why i don't need to write this code --
}
objectchanger(obj.Add, obj);
alert(obj.value); // the value is now 7
call
是Function
对象上的方法。它调用一个函数,并将传入的对象作为函数中的this
值。请参阅随叫随到的 MDN 文档。
所以当objectchanger
调用fnc.call(obj)
时,它正在调用test.prototype.Add.call(obj)
,这与调用obj.Add()
相同。
当在javascript函数中访问"this"对象时,它会从当前执行上下文中获取它。通过在调用方法中传递"obj",函数中的"this"对象将设置为传入的对象。
相关文章:
- 未捕获错误:无法在初始化之前调用方法;
- 通过ajax从客户端调用C#方法来执行C#方法
- 如何避免在angular上多次调用方法;s ng重复
- React路由器错误-'无法调用方法'getRouteAtDepth'的未定义'
- 从window.onbeforeunload调用方法背后的代码
- 当输入字段为空时,如何在angular中调用方法
- 函数调用方法有什么用
- 多次调用方法后返回相同promise的模式
- 当从Chrome扩展动态注入JS时,从onload()内部调用方法
- 茉莉花 - 未调用方法
- jQuery如何在原型中调用方法
- ng显示“;调用方法“;不起作用
- Odoo销售点如何访问模型并使用JS调用方法
- 从React调用方法.JS州
- TinyMCE验证给出错误:无法调用方法'getContent'的未定义
- 向模板实例变量传递调用方法调用的结果时出现异常
- 如何在对象中调用方法
- 检查对话框是否为 Open 会引发“初始化前无法在对话框上调用方法”错误
- 在输入类型提交按钮上调用 C# 方法
- 通过类选择器单独调用方法