日期:2014-05-16  浏览次数:20380 次

求教一个javascript的构造函数的问题?
在JAVA中构造函数有带参数的和不带参数的。如果有这样的JS代码:
JScript code

  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一个。


------解决方案--------------------
java我不懂


function obj(param){
this.param=param || "";
}

new obj();
这个意思? 

------解决方案--------------------
JScript code
function Obj() {
    this.param = arguments[0] || '';
}

var o1 = new Obj();
var o2 = new Obj('DEMO');

alert(o1.param);
alert(o2.param);

------解决方案--------------------
完全合法。浏览器不报错。不影响页面执行。你说IDE有提示,不必理会!
------解决方案--------------------
function obj(param){
this.param=param?param:null;
}

这样不接ok了?不管你传不传参数,都可以构造出一个对象


------解决方案--------------------
在js中 没有像java一样的方法重构(跟据传的参数不同 方法调用也不相同)

只要方法名对了 就会调用的,你传不传参 对它都没有影响的