【发布时间】:2018-04-15 23:33:38
【问题描述】:
我正在尝试找到一种从子函数调用父函数的简单方法。但是,实际上并没有像在其他编程语言中那样直接从子实例中调用它的方法。
class ExchangeHandler {
constructor(getMarketsUrl, getMarketDataBaseUrl, interval) {
this.interval = interval;
this.getMarketsUrl = getMarketDataBaseUrl;
this.getMarketDataBaseUrl = getMarketDataBaseUrl;
}
getMarketsUrl() {
return this.getMarketsUrl;
}
getMarketDataBaseUrl() {
return this.getMarketDataBaseUrl;
}
buildQueryUrl(params) {
return querystring.stringify(params);
}
getIntervalParam() {
return config.intervalToExchangeInput[[config.exchange]][[this.interval]];
}
}
class BittrexHandler extends ExchangeHandler {
constructor(interval) {
super("https://bittrex.com/api/v1.1/public/getmarkets",
"https://bittrex.com/Api/v2.0/pub/market/GetTicks",
interval);
}
buildGetMarketTickerUrl(symbol) {
return super.getMarketDataBaseUrl() + "?"
+ super.buildQueryUrl({marketName: this.buildSymbolParam(symbol),
tickInterval: super.getIntervalParam()})
}
buildSymbolParam(symbol) {
return "BTC-" + symbol;
}
}
var bittrexHandler = ExchangeHandlerFactory.getExchangeHandler("bittrex", "hour");
console.log("getMarketsUrl: " + bittrexHandler.getMarketsUrl());
我得到了
TypeError: bittrexHandler.getMarketsUrl is not a function
这在javascript中是不可能的吗?非常感谢!
【问题讨论】:
-
您使用的是
super.methodName。你了解原型是什么吗? -
@evolutionxbox 我正在学习 JS 你能详细说明你的问题吗?
-
我会推荐你学习 JS 原型
标签: javascript ecmascript-6 es6-class