Livescript的克隆运算符^^在服务器端不起作用(node.js)

时间:2014-01-06 09:41:18

标签: javascript node.js livescript

livescript中,我们可以使用^^克隆对象。

例如,

consloe.log (^^{a:1})

将编译为

// Generated by LiveScript 1.2.0
(function(){
  console.log(clone$({
    a: 1
  }));
  function clone$(it){
    function fun(){} fun.prototype = it;
    return new fun;
  }
}).call(this);

但是,这些代码在浏览器中成功运行,但在node.js中无效。

  • 在浏览器中,它会在控制台中打印fun {a: 1}
  • 在node.js中,它什么都没有显示。

是什么原因?

1 个答案:

答案 0 :(得分:3)

默认情况下不打印原型属性。 ^^运算符将操作数设置为新对象的原型。这些属性仍然可以访问,但不会被console.log打印,也不会被序列化为JSON。

如果您只想复制属性,请使用{} <<< obj