在JAVA中构造函数有带参数的和不带参数的。如果有这样的JS代码:  function obj(param){
     this.param=param;
  }
这样可以通过参数初始化。如果我想 像JAVA中通过空参去构造一个对象,应该怎么办?
就是说:
var o=new obj();得到这个对象,我应该怎么做。我想到的是,要么在写一个 function obj(){...}去调用 obj(param),这样就相当于JAVA中又定义了一个CLASS。
还有一种是在 obj(param)中写一个初始化的方法init(); 但是,以后初始化还要 new obj(param).init(),而不能直接NEW一个。

解决方案 »

  1.   

    java我不懂
    function obj(param){
         this.param=param || "";
    }new obj();
    这个意思? 
      

  2.   

    function Obj() {
    this.param = arguments[0] || '';
    }var o1 = new Obj();
    var o2 = new Obj('DEMO');alert(o1.param);
    alert(o2.param);ECMAScript 函数概述:http://www.w3school.com.cn/js/pro_js_functions.asp
      

  3.   

    想问一下  function obj(param){
         this.param=param;
      }这个对象,我是否可以直接var o=new obj();前面定义的对象中,有个参数param,但是我什么也不传,可以吗。JS没有报错,而且浏览器可以解析,但是总觉得不规范。打个比方,JAVA中有个方法是带参数的,但是我调用的时候不传参,括号内是空的。肯定会报错。
      

  4.   

    我知道可以。比如   function a(arg){
          return "abc";
       }
       
       alert(a()); 这时可以弹出“abc”,但是这样做是否合法,我的IDE上面有一条波浪纹的提示,所以是否有隐患,在javascript中是否赞成这么写,规范吗
      

  5.   

    完全合法。浏览器不报错。不影响页面执行。你说IDE有提示,不必理会!
      

  6.   

      function obj(param){
         this.param=param?param:null;
      }这样不接ok了?不管你传不传参数,都可以构造出一个对象
      

  7.   

    在js中 没有像java一样的方法重构(跟据传的参数不同 方法调用也不相同)只要方法名对了 就会调用的,你传不传参 对它都没有影响的