我如何将这段ES6代码转换为旧版本的javascript

时间:2020-07-08 07:51:21

标签: javascript

我找到了一种用ES 6编写的解决方案,但我不知道如何在旧版本的Java脚本上进行转换,因此我无法更好地理解它。 如果我们有对象,则使用此代码只能获得该对象的某些属性。 但是我不明白这里发生了什么。到底是什么(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);

4 个答案:

答案 0 :(得分:1)

它是这样的:

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

为了更具描述性,这部分内容:

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

表示“ 创建一个匿名函数,该函数接受一个对象参数并返回一个新对象,然后立即以obj作为参数执行它,并将结果分配给result变量。

答案 1 :(得分:0)

您正在创建一个函数,并在下面调用它。

这是相同的:

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

答案 2 :(得分:0)

您应该考虑使用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); 

答案 3 :(得分:0)

我首先要问您“旧版本”到底是什么意思,无论如何,以下内容均符合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)