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