gpt4 book ai didi

javascript - 有没有办法在构造函数中声明函数?

转载 作者:行者123 更新时间:2023-11-28 13:33:37 25 4
gpt4 key购买 nike

首先,我认识到 method.this 与 var 方法等上有大约 100 多个线程。这不是我要问的。我知道其中的差异。在使用构造函数创建对象的上下文中,我对函数表达式 VS 函数声明感到困惑。

我想知道的是:为什么函数声明永远不会出现在构造函数中,而函数表达式却出现?每当我声明一个函数而不是使用表达式时,一旦启动,它就无法在对象中访问;这是为什么?

我认为这是因为它要么是本地的(又名私有(private)的),因此无法访问,要么是在创建对象时,如果构造函数没有看到以“this”、“var”或“constructor.prototype”为前缀的函数,它会跳过它。

最佳答案

How come function declarations never appear in constructors, but function expressions do?

他们确实

Whenever I declare a function rather than use an expression it is not accessible in the object once initiated; why is this?

你一定是做错了。

  function Thing() {
function go() {
alert('Hello');
}
this.foo = 1;
this.bar = function () {
go();
}
}

var x = new Thing();
x.bar();

I think it is because either it is local (aka private) and thus inaccessible

函数声明是局部作用域的。这并不能阻止您将它们分配给更广泛的范围、对象属性或在它们声明的范围内使用它们。

关于javascript - 有没有办法在构造函数中声明函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23059291/

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