关于import的一个疑问

源码客栈 毕业设计 1

背景:有个朋友是搞上位机,写C++的,我们用的是基于Qt的JS引擎。 问题:他问我在JavsScript里,require一个模块之后,为什么不能直接用里面的方法。

我的回答: 其实一开始我其实没get到他的意思,讲export,然后又拿死月大佬的《来一打C++扩展》翻了翻,半天鸡同鸭讲。 后来我是这么回答的,在某个模块 require了另个模m块,直接用a() ,其实是用当前模块.prototype.a() 而不是m.a(),JS中的OOP并非是传统的OOP。 想请教一下社区里的各位大佬,node里面的require、import 和C++中的import的区别

回复

共2条回复 我来回复
  • 代码工坊
    这个人很懒,什么都没有留下~
    评论

    因为c++ 显式地声明了 using namespace xxx ; 如果客户代码不写using  namespace 一样不能直接调用 而nodejs没有using namespace xxx 这样的语法,所有的package都挂在 exports.xxx 下面, 客户代码直接require 'xxx’ xxx.method 这样比c++更简单明了

    #include <iostream>
    using namespace std;
    namespace square {
        int x=100;
        int y=200;
        void say(char* msg) {
            cout << msg <<endl;
        }
    }
    
    namespace round {
        int x=300;
        int y=400;
        void say(char* msg) {
            cout << msg <<endl;
        }
    }
    
    
    
    int main() {
        //using namespace square;
       // say("square");
    
        //cout << x << "  " << y << endl;
        using namespace round;
        cout << x << y << endl;
        say("round"); 
    }
    

    你不写using namespace  看能调用方法吗?

    0条评论
  • 源码项目助手
    这个人很懒,什么都没有留下~
    评论

    可以直接用

    代码示例:

    const http = require("http")
    http.get('http://www.baidu.com', (res) => {
      console.log(`Got response: ${res.statusCode}`);
      // consume response body
      res.resume();
    }).on('error', (e) => {
      console.log(`Got error: ${e.message}`);
    });
    
    0条评论

发表回复

登录后才能评论