昨天我发现了这个功能:
function clone(obj) { return typeof obj === 'undefined' ? this : (clone.prototype = Object(obj), new clone); }
我虽然在Javascript中看到了很多,但这种语法对我来说不得而知:
clone.prototype = Object(obj), new clone
谁能解释我怎么读这个?你能给我链接到正确的定义吗?我在Mozilla的MDC中找不到它,也不知道如何在网上找到它,但这是我第一次看到这种语法.感谢您的努力.
最终解决方案
我根据这里的答案做了一些测试,我找到了:
var b; b=alert('test'),6; alert(b); // alert undefined b=5,alert('test2'); alert(b); // alert 5
感谢christoph研究我们发现了更多:
var a, b, c; a = 1, 2; // a is 1 (b = 1), 2; // b is 1 - same as above! c = (1, 2); // c is 2
啊,我也在IE6上测试它,它的工作原理,所以这必须是旧的语法,没有关于它的信息?:(奇怪......
你们两个都给了很好的解决方案,感谢这里的解决方案!
MDC的逗号运营商:
逗号运算符(,)简单地计算其两个操作数并返回第二个操作数的值.
在这种情况下,它确实像调用此函数一样工作:
function() { clone.prototype = Object(obj); return new clone; }