js全局函数原来是这样啊

330 阅读1分钟

最近在开发移动端项目,有个不明白的问题是,我看代码里面有个 window.xxx 的方法调用 , xxx 是原生app提供的方法,这个是调用但是xxx 是什么时候挂载到window上的呢,我接着溯源,看到有个common.js,里面全是对原生api的定义,类似这样的定义

// common.js

function getUserInfo ()=>{
  if (ios) {
     // 调用ios提供的api
  }els{
    // 调用安卓提供的api
  }
}

....//
   

然后这个 common.js 是在 index.html 里面引入了,我纳闷的是虽有在index.html 里面引入,但是并没挂载到window上面啊,为啥代码里面能用 window.getUserInfo() 调用,并且按照这种方法,我在真机上调试还能那到原生返回的H5的结果。

带着我的疑问,我问了下豆包,豆包是这么回答我的

image.png

看到这个我恍然大悟,原来是这样啊,那就讲的通了,我得亲自试试

准备一个html文件,引入一个js文件

image.png

// index.js
function getInfo() {
  console.log("---getInfo--");
}

let name = "vue";

var age = "react";

var fun1 = () => {
  console.log("--fun1----");
};

然后看下浏览器的输出

image.png

还是基础不够扎实,但是我也不记得学过这个知识点 ‘emjo 笑哭’