backbone里面的
http://test.xdnote.com/chapter-javascript/strange2.html
function A(){
this.init(arguments);
return 0;
}
A.prototype={
init:function(args){
console.log(args);
}
}
// 1.这里面会报一个语法错误,主要是因为它没有实例化
// 2.更加直白的说下:像这种写法 return 没有任何作用,因为构造器中有this指针就说明,只有new操作才能,而new操作总是返回的对象本身,而不是构造器中return的值
A();
// 2.没有参数时,括号都可以不写,效果与写了是一样的,当然个人建议任何时候都写括号
new A;
new A();
// 3.带参数时,就必须写括号了
new A(1);
new A(1,'2');
// 4.仿造一下,由于 函数已经定义了,所以不太好证明第一段代码的想法
// (A);
// !A;
// var dd = new A('dd');
// dd.init(1,'2');
// dd(); //error
// dd;
// A=!A;
// console.log(A);
// console.log(new A('DFA'));
// A();
// A++;
// console.log(A);
// console.log(new A('DFA'));
// (A);
// 5.再来一无段
function B(){
console.log(arguments);
return 1;
}
B();
new B;
new B(1);
new B(1,'2');
B;
// 6.结论:无参可省略括号,但此表达式只能构造一个对象,如果要操作还是加把括号加上
console.log(new Date);
console.log(new Date());
console.log((new Date).getTime());
console.log(new Date().getTime());