您是否可以更改ES6类定义以附加新的实例方法?

时间:2015-05-31 13:24:39

标签: javascript class methods ecmascript-6

有没有办法追溯(即已经定义了类之后)将实例方法添加到ES6类中?

考虑以下课程:

class Thing {}

我现在想要将hello方法附加到Thing,然后可以在其实例上调用,如下所示:

let thing = new Thing();
thing.hello();

有可能吗?

(当然,我可以创建一个子类,但这不是我在这里要求的。)

2 个答案:

答案 0 :(得分:3)

只需使用ES5中的prototype

class Thing {
  hello () {
    console.log('Hey!');
  }
}

var t = new Thing();

t.hello(); // Hey!

Thing.prototype.goodbye = function () {
  console.log('Bye!');
}

t.goodbye(); // Bye!

答案 1 :(得分:2)

或者您可以使用 Object.assign

JSONObject json = jParser.makeHttpRequest(url_all_games, "GET", params);

这相当于

if (isset($_POST['email']) && $_POST['email'] != '')