JavaScript方法和属性调用的差异混淆
JavaScript method and property call difference confusion
我的JavaScript代码
var persona = {};
var _id = 3;
var getId = function () {
console.log("getId called")
return _id;
}
persona.getId = getId;
所以当我使用persona.getId = getId;
调用getId
方法时,它没有被调用。控制台不打印
getId叫做
更新
经过搜索,了解它们之间的区别。所以用这个来更新我的问题
persona.getId = getId;
&persona.getId = getId();
这两个句子起不同的作用。
persona.getId = getId();
上面的语句存储了getId()函数返回给persona的值。getId财产。
persona.getId = getId;
上面的语句存储了getId()函数对persona的引用。getId财产。由于存储在persona.getId
中的值是函数引用,所以persona.getId
也是一个函数。它可以使用下面的代码来调用-
persona.getId();
当我使用
persona.getId = getId;
调用getId方法时,它没有被调用
通过使用persona.getId = getId;
,您只是创建了对getId()
的引用。你没有调用getId
方法。
要调用该方法,您需要在函数名末尾添加()
。
persona.getId = getId();
// ^^
通过调用getId()
函数,返回的结果将被赋值给persona.getId
。
var persona = {};
var _id = 3;
var getId = function() {
document.write("getId called")
return _id;
};
persona.getId = getId();
console.log(persona);
当然它不会调用。对于调用任何方法,您需要在最后添加();
var persona = {};
var _id = 3;
var getId = function () {
console.log("getId called")
return _id;
}
persona.getId = getId;
这里你只是在创建getId函数的引用。
要调用getId,你需要这样做:
getId();
persona.getId();
相关文章:
- 未捕获错误:无法在初始化之前调用方法;
- 通过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# 方法
- 通过类选择器单独调用方法