gpt4 book ai didi

javascript - 为什么以下 JavaScript 中 bar 未定义?

转载 作者:行者123 更新时间:2023-11-28 20:09:54 24 4
gpt4 key购买 nike

我正在尝试使用 CoffeeScript 和“class”关键字,最终得到以下结果:

var Foo, foobar;

Foo = (function() {
function Foo() {}

Foo.bar = 7;

return Foo;

})();

foobar = new Foo;

alert(foobar.bar);

输入后:

class Foo
@bar = 7


foobar = new Foo

alert foobar.bar

我希望栏保留该值,但警报弹出为未定义

最佳答案

barFoo(函数)的属性,而不是它创建的实例。

如果您希望在实例上使用bar,您有两种选择:

  1. 在构造函数中设置它:

    class Foo
    constructor: () ->
    @bar = 7

    foobar = new Foo

    alert foobar.bar

    这翻译成这个JavaScript:

    var Foo, foobar;

    Foo = (function() {
    function Foo() {
    this.bar = 7;
    }

    return Foo;

    })();

    foobar = new Foo;

    alert(foobar.bar);
  2. 或者将其设置在原型(prototype)上:

    class Foo
    bar: 7

    foobar = new Foo

    alert foobar.bar

    翻译为:

    var Foo, foobar;

    Foo = (function() {
    function Foo() {}

    Foo.prototype.bar = 7;

    return Foo;

    })();

    foobar = new Foo;

    alert(foobar.bar);

关于javascript - 为什么以下 JavaScript 中 bar 未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20058916/

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