两种声明此功能的方式有什么区别?

时间:2019-03-29 14:38:42

标签: javascript jquery ecmascript-6

const addCode = function (code) {
    console.log("Add Code executed");
    var JS = document.createElement('script');
    JS.textContent = code;
    document.body.appendChild(JS);
}

(() => {
    // Run once on script start up
    console.log("Startup site.js ran");
    $.get("A2040/GetLoggingMessageData", (data, status) => {
        console.log(`Data: ${data} \nStatus ${status}`);
        addCode(data);
    })
})(); // Immidiately Invoked

以ES5方式声明addCode函数的方式(也许)将其提升并在console.log("Startup site.js ran");之前运行。

  1. 为什么要这么做?使用箭头语法功能声明与预期相同的功能-首先记录Startup site.js ran,然后记录Add Code executed
const addCode = (code) => {
    console.log("Add Code executed");
    var JS = document.createElement('script');
    JS.textContent = code;
    document.body.appendChild(JS);
}
  1. 为什么现在使用箭头功能可以正确执行此操作?发生了什么?

0 个答案:

没有答案