【问题标题】:Create a new static function from a class in another file in JavaScript在 JavaScript 中从另一个文件中的类创建一个新的静态函数
【发布时间】:2019-07-25 18:08:10
【问题描述】:

我有一个类,我在其中创建了静态函数 file1,但是当我将它导入另一个文件并创建一个新的静态函数时,它不能按预期工作,这让我知道我的新静态函数不是file3 中的函数,我该如何解决这个问题? 这是我的代码:

//file1

class Qbs {
  static getRfreshToken(selectors = {}, projection = {}) {
    return QuickBoooks.findOne(selectors, projection);
  }

  static updateRefreshToken(tokenId, tokenValue) {
    return QuickBoooks.update(tokenId, { $set: { refreshToken: tokenValue } });
  }
}

export default Qbs;
}


//file2
const Qbs = require('./index');

module.exports = function () {
    Qbs.prototype.sayMyName = function () {
        return 'zeyad';
    };
};


//file3
import Qbs from './file1'
console.log(Qbs.sayMyName()); //sayMyName is not a function

【问题讨论】:

  • 这篇文章应该用 react.js、node.js 和其他任何合适的标签,因为这不是纯 JavaScript,你可能会更关注这个问题。
  • @daddygames 为什么? static 函数是核心 JavaScript 的一部分。我也没有在这个问题中看到反应代码。
  • 我添加了一个新标签nodejs@daddygames
  • @zero298 这没什么大不了的,但这整件事是基于对 NodeJS 的理解,因此使用该标签将确保观看该标签的人看到它并更好地帮助解决问题.
  • 呃,Qbs.prototype.sayName = … 没有定义静态函数?!

标签: javascript node.js class oop


【解决方案1】:

file2 中,您导出一个修改Qbs 原型的函数,但您从不导入file2,或运行该函数。

//file3
import Qbs from './file1'
import addSayMyName from './file2'

addSayMyName()
console.log(Qbs.sayMyName()); //sayMyName is not a function

【讨论】:

    猜你喜欢
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-03
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    相关资源
    最近更新 更多