gpt4 book ai didi

JavaScript 函数不起作用

转载 作者:行者123 更新时间:2023-11-30 07:17:34 25 4
gpt4 key购买 nike

我正在使用以下 JavaScript 代码:

var emp= new Object();
emp["name"]="pooja";
emp["salary"]=725;

emp["paycheck"]=function()
{
var monthly=this["salary"]/12;
alert(this["name"]+":"+monthly);
};

emp["paycheck"](); --work properly
document.write("<br/>");
var f=emp["paycheck"]; --dosen't work
f();

f() 必须引用 emp["paycheck"] 函数并显示合适的答案。但我得到的是 NaN。

据我所知,f() 看不到 emp 对象的属性(“姓名”和“薪水”)。我的问题是为什么 f() 看不到属性?

最佳答案

您将薪水称为this["salary"]。如果您存储函数并在以后调用它,this 值将丢失。它仅在您直接调用它时绑定(bind)到对象,如在 emp.paycheck() 中。不过,您可以显式传递 this 值:

f.call(emp);

但您可能更愿意在函数中将薪水引用为 emp["salary"],因为这将始终有效。

请注意,您可以使用 foo.bar 而不是 foo["bar"],并且 new Object() 部分可以只是:

var emp = {
name: "pooja",

salary: 725,

paycheck: function() {
...
}
};

关于JavaScript 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9143323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com