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

请问一个标准的构造函数内,是不是最好只有对象和属性?没有其他变量或函数语句什么的啊?
我模仿Array了写了一个类,构造函数里除了一个属性外都是函数语句,这么写是不是不标准啊?求个标准写法
JScript code

function f1(){
    var m,str=''
    for(var i=0; i<arguments.length;i++){
       str=str+arguments[i]+','
    }
    m=str.length
    str=str.substr(0,m-1);
    this.strs=str;
}
f1.prototype.toString=function(){
    return this.strs
}
n=new f1(7,8,9)
alert(n)




------解决方案--------------------
也未必啊 比如你的代码改成这样
function f1(){
var m,str=''
for(var i=0; i<arguments.length;i++){
str=str+arguments[i]+','
}
m=str.length
str=str.substr(0,m-1);
this.strs=str;
}
f1.prototype.toString=function(){
return this.strs
}
n=new f1(7,8,9);
n.strs=0;
alert(n)
就得不到正确结果了 而改成这样
function f1(){
var m,str=''
for(var i=0; i<arguments.length;i++){
str=str+arguments[i]+','
}
m=str.length
str=str.substr(0,m-1);
this.toString=function(){
return str;
}
}
n=new f1(7,8,9);
alert(n)
貌似稍微好点 有些只希望度但不希望些的属性可以定义为私有的 然后用特权方法来访问 个人感觉 呵呵