我的JavaScript代码
var persona = {};
var _id = 3;
var getId = function () {
console.log("getId called")
return _id;
}
persona.getId = getId;
因此,当我使用getId
调用persona.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();
答案 0 :(得分:1)
当我使用
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);
&#13;
答案 1 :(得分:0)
当然它不会打电话。要调用任何方法,最后需要添加();
var persona = {};
var _id = 3;
var getId = function () {
console.log("getId called")
return _id;
}
persona.getId = getId;
这里你只是创建了getId函数的引用。
要调用getId,您需要执行以下操作:
getId();
persona.getId();