簡體   English   中英

我如何將這段 ES6 代碼轉換為舊版本的 javascript

[英]How can i transform this piece of code of ES6 into older version of javascript

我找到了一個用 ES 6 編寫的解決方案,但我不知道如何在舊版本的 java 腳本上對其進行轉換,所以我無法更好地理解它。 如果我們有 object,我們使用此代碼僅從該 object 中獲得一些屬性。 但我不明白這里發生了什么。 最后是什么意思(obj)以及這個代碼在舊版本的 java 腳本中的外觀如何?


const obj = {a:1, b:2, c:3, d:4, e:5 };
const result = (({a,b,c}) => ({a, b, c}))(obj);
console.log(result);

它是這樣的:

 var obj = {a:1, b:2, c:3, d:4, e:5 }; var result = (function(o) { return { a: oa, b: ob, c: o.c }; })(obj); console.log(result);

為了更具描述性,這部分:

var result = (function(o) {
    return { a: o.a, b: o.b, c: o.c };
})(obj);

意思是“創建一個匿名的 function,它接受一個 object 參數並返回一個新的 object,然后立即以obj作為參數執行它並將結果分配給result變量。

您正在創建 function 並在下面調用它。

這是一樣的:

var obj = {a:1, b:2, c:3, d:4, e:5 };

var result = function(obj) {
  return {
    a: obj.a,
    b: obj.b,
    c: obj.c,
  }
}

result(obj);

console.log(result);

您可以使用 Babel 工具轉譯現代代碼:

通天塔

你應該考慮使用Babel

它會自動將 ES6 轉換為舊版本。

這是 Babel 從您的代碼生成的代碼,它將適用於舊版本:

"use strict";

var obj = {
  a: 1,
  b: 2,
  c: 3,
  d: 4,
  e: 5
};

var result = function (_ref) {
  var a = _ref.a,
      b = _ref.b,
      c = _ref.c;
  return {
    a: a,
    b: b,
    c: c
  };
}(obj);

console.log(result); 

我首先要問一下“舊版本”到底是什么意思,無論如何,以下內容符合 ES3,並且應該澄清:

var obj = {a:1, b:2, c:3, d:4, e:5 };
function middleFun(o) {
  return {a: o.a, b: o.b, c: o.c}
}
var result = middleFun(obj)
console.log(result)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM