javascript - 类外的类变量

标签 javascript oop ecmascript-6

假设我有一个这样的类(class)

class Vector {
    constructor(x,y) {
        this.x = x
        this.y = y
    }
}

我怎样才能做这样的事情

class Vector {
    constructor() {
    }
    var x;
    var y;
}
var v = new Vector()
v.x = 3
v.y = 4

我基本上想在构造函数之外声明我的变量。做了一些研究。没有发现任何内容

最佳答案

我猜你正在谈论属性初始化器

如果你稍微修改一下你的代码就可以正常工作:

class Vector {
    constructor() {}

    x = 1;
    y = 2;
}

var v = new Vector();

console.log(v.x, v.y); // 1 2

v.x = 3
v.y = 4

console.log(v.x, v.y); // 3 4

请记住,这目前是 第 2 阶段 proposal ,因此它无法在任何开箱即用的浏览器中运行。

如果您正在使用 babel,您可以使用 transform-class-properties不过是插件。

如果您不使用 babel,您可以使用一些替代方案 - 它们已在 this question 中讨论过。 .

关于javascript - 类外的类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43255860/

相关文章:

javascript - 如何在 D3.js 中输入数组?

javascript - React Native Styled 组件动态字体大小

类实现接口(interface)时PHP Trait冲突

c# - C# 中的 getter 和 setter 有哪些更好的替代方法?

javascript - ES6 - 使用基类的参数调用回调

javascript - Wordpress 插件功能在桌面上运行良好但在移动设备上运行不正常。为什么?

javascript - 检索导入的 Sequelize 模型

java - 如何避免子类的类型检查?

ecmascript-6 - Javascript - 解构对象 - 'this' 设置为全局或未定义,而不是对象

javascript - ES6 WeakMap 的实际用途是什么?