调用未在代码中的任何位置定义的函数
Calling a function that is not defined anywhere in the code?
function Person(first,last,age) {
this.firstname = first;
this.lastname = last;
this.age = age;
var bankBalance = 7500;
var returnBalance = function() {
return bankBalance;
};
this.askTeller = function(){
return returnBalance;
}
}
var john = new Person('John','Smith',30);
console.log(john.returnBalance);
var myBalanceMethod = john.askTeller();
var myBalance = myBalanceMethod();
console.log(myBalance);
这是代码学院的一个例子。我不明白
var myBalanceMethod = john.askTeller();
var myBalance = myBalanceMethod();
我在想的是,var myBalanceMethod = john.askTeller();
将myBalanceMethod
的值设置为returnBalance
。那我不确定什么,var myBalance = myBalanceMethod();
是做什么的,因为myBalanceMethod
实际上不是一种方法,我不认为?有人可以解释一下最后几行代码中发生了什么
myBalanceMethod是一个方法。
var myBalanceMethod = john.askTeller();
这一行正在设置一个引用,这可能是这段代码所演示的。 myBalanceMethod 在分配给 john.askTeller() 后成为一个函数,这是一个函数。
为了进一步证明这一点,我可以执行以下操作:
function addNumbers(a, b) {
return a + b;
}
var myRefObj = addNumbers;
alert(addNumbers(10,20));
alert(myRefObj(10,20)); // same answer
john.askTeller()
返回returnBalance
,这是一个函数,然后分配给myBalanceMethod
;因此myBalanceMethod
是一个函数,可以使用()
调用(你在john
内部调用returnBalance
否则无法访问)。
var myBalanceMethod = john.askTeller(); // myBalanceMethod is now a reference to returnBalance in john
var myBalance = myBalanceMethod(); // returnBalance is executed and value (7500) assigned to myBalance
var myBalanceMethod = john.askTeller();
以上会将 returnBalance 方法分配给 myBalanceMethod。请注意,它没有左括号和右括号 ()。这意味着,它不会执行函数,而只会分配。因此,myBalanceMethod 现在是一个函数。查看下面的代码:
this.askTeller = function(){
return returnBalance;
}
然后
var myBalance = myBalanceMethod();
myBalance 被分配了 myBalanceMethod() 返回的值。请注意 (),因此它会执行该函数。在您的 Person 构造函数中,它返回 BankBalance,即 7500。因此,myBalance 被分配了 7500 个值。
var returnBalance = function() {
return bankBalance;
};
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 如何通过点击机身上的任何位置来关闭弹出的DIV
- 如何在显示侧边栏时禁用背景,单击除侧边栏之外的任何位置都会关闭侧边栏
- 如何使用AngularJS在点击身体内部任何位置时显示弹出窗口
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 有人知道有没有jquery插件可以在图像上写文本,并让用户将其放置在图像内的任何位置
- jQuery toogle-一个打开,另一个隐藏-在代码中的任何位置
- Javascript中的正则表达式,用于只有数字的字符串,并且不应在除数字以外的任何位置包含任何字符
- 我可以替换“;获取“;方法用“;POST”;代码库中的任何位置
- 为什么首先单击文档空白处的任何位置启动代码,而不是单击超链接,以及为什么打开了太多选项卡
- 当用户使用jquery点击任何位置时,切换并隐藏登录表单
- JavaScript__dopostback通过单击页面上的任何位置来调用
- 谷歌地图地点自动完成搜索任何位置
- 使用 JavaScript 检查字符串是否包含字符串中任何位置的 URL
- 如果井号显示在网页上的任何位置,则显示某些内容
- 当在窗口中的任何位置单击选择框时,如何获得选择框关闭事件
- Javascript - 从任何位置将元素动画到屏幕中心
- 如何通过单击除该元素以外的任何位置来隐藏元素
- $('html').click()..除一个元素外的任何位置
- 将具有相同ID类和标记HTML的多个元素拖放到屏幕上的任何位置