javascript - 为什么要使用此方法在函数中声明全局变量?

原文 标签 javascript oop

我有以下代码:

function boo() {
    this.is_global = "Yes!";
}


当我运行boo();时,我在is_global对象中有window,这意味着is_global进入了全局上下文。
我希望仅在is_global函数中具有boo

这是正常现象吗?

最佳答案

this指的是窗口。如果要引用该函数,请使用:

arguments.callee.is_global = "Yes!";


现在:

window.is_global; //undefined
boo.is_global; //"Yes!"


另一种方法是在向其添加属性时简单地通过其自身名称来引用boo。

function boo() {
    boo.is_global = "Yes!";
}


请注意,这将修改原始的boo函数对象。如果您希望修改boo的所有实例(将其用作构造函数),请在此处查看其他答案。

关于javascript - 为什么要使用此方法在函数中声明全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13212636/

相关文章:

javascript - 在Facebook上分享分数

c++ - C++ 中最好的 OO 设计实现?

c++ - 从子类实例访问和更改父值

c# - 抽象类可以在派生类中被覆盖而不在基类中实现吗

javascript - 如何在正确 react 中通过 3 个类组件传递数据?

javascript - 进度条下的状态文本

javascript - 使用JavaScript启动Docker机器

oop - 如何在 GO 中进行嵌套的面向对象函数调用

python - Python中的重载构造函数点?

javascript - 即使验证失败也提交表单