在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}
。是什么原因?
答案 0 :(得分:3)
默认情况下不打印原型属性。 ^^
运算符将操作数设置为新对象的原型。这些属性仍然可以访问,但不会被console.log
打印,也不会被序列化为JSON。
如果您只想复制属性,请使用{} <<< obj
。