Livescript的克隆操作符^^在服务器端不工作(node.js)
在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中,它什么都没有显示。
什么原因?
原型属性默认不打印出来。 ^^
运算符将操作数设置为新对象的原型。 这些属性仍然可以访问,但不会被console.log
打印,也不会被序列化为JSON。
如果您只是想复制属性,请使用{} <<< obj
。