zoukankan      html  css  js  c++  java
  • 构造函数实例化 new 的时候没有参数加不加括号都可以

          【转】 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());
  • 相关阅读:
    jssdk语音识别调用(基于easywechat)
    mysql常见问题
    JAVA常见面试题
    使用HttpClient实现文件上传和下载
    mysql之数据去重并记录总数
    mysql的BLOB类型问题
    Velocity入门总结
    关于JSON的一些问题
    QLExpress语法介绍
    史上最全的Maven Pom文件标签详解(转)
  • 原文地址:https://www.cnblogs.com/oklfx/p/8481300.html
Copyright © 2011-2022 走看看