我在警报框中得到了功能代码,为什么会这样
I get the function code in the alert box, why is this?
当我运行此脚本时,我会在警报框中获得speak函数代码。它应该是"Hello!"而不是函数(){alert("Hello")}。我使用alert是因为我似乎更喜欢它而不是console.log。脚本在没有发言功能的情况下运行良好。
function person(firstname,lastname,age,eyecolor) {
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
this.newlastname=newlastname;
this.speak=function(){alert("Hello!")};
}
var myFather=new person("John", "Doe", 45, "blue");
var myMother=new person("Sally","Rally", 48,"green");
function newlastname(new_lastname) {
this.lastname=new_lastname;
}
myMother.newlastname("Doe");
alert(myMother.lastname);
alert(myMother.speak);
将最后一行更改为
myMother.speak();
对于接收字符串的函数(如alert()
),如果传入一个函数,则表示该函数的源代码。因此,当您将myMother.speak
传递到alert
时,它获取了源代码,因此您看到了结果。
(如果有人可以进一步扩展或提供有用的链接,请随时编辑此答案)
我在警报框中得到了功能代码,为什么会这样?
这是因为你引用了一个函数,而不是调用它,似乎alert()
可能在参数上调用了toString()
函数,而在函数引用上调用tostring()
似乎是以字符串的形式返回源,因此当你发出警报时,你会得到源,尽管这只是一种预感,因为警报似乎是本地实现的,所以我真的不能说它是如何实现的。
我也不能说这种行为在所有浏览器中都是一致的。
相关文章:
- 带有键代码参数Jquery的模拟按键功能
- 这个javascript代码有什么错误,它有将数字转换为单词的功能
- 修复Javascript代码以将文本中的所有Youtube链接转换为Youtube ID功能
- 正在尝试获取此代码'在wordpress页面中工作的功能
- 重用if语句中的代码.(功能内部的功能是不良做法吗?)
- AngularJS控制器之间共享代码/方法/功能
- 我在警报框中得到了功能代码,为什么会这样
- 按钮创建无法定位功能代码错误
- 如何将这些代码和我的想法转换为功能思维(Clojure)
- 我想构建一个代码,在谷歌应用程序脚本中检查我在Gmail中导入的邮件,我该如何找到这个功能
- 用于导出Excel的.Net MVC 4.5 JqGrid按钮功能不起作用.什么'我的代码错了
- 如何在键代码中更改功能
- 文档就绪功能 - 不先加载代码
- 尝试将促销代码功能添加到折扣号码
- 具有多个查询的云代码功能
- Wordpress短代码功能,添加以< >标记
- 云代码功能在Parse中工作得很好,但在back4app中不行
- 解析云代码功能不能使用主密钥,它没有被提供
- 无法使用cron linux运行我的解析服务器的云代码功能
- 不能保持基本的云代码功能的工作使用parse.com