function class1(){ this.a1 = "aaa";}var aa = new class1();alert(aa["a1"]); alert(aa.a1);aa[0]=123; alert(aa[0]);
谢谢cloudgamer function class1() { this.a1 = "aaa"; } var aa = new class1(); alert(aa["a1"]); alert(aa.a1); aa[0]=123; alert(aa[0]); 上述做法我基本明白了,我理解为直接赋值,然后就可以直接取值了。我想继续请问:可不可以不直接赋值,取值时再动态计算? 比如我有如下类: function class1() { var _data = new Array('张三',26,'136012345678'); //注意是私有变量 ...... } 如何能做到: var emp1 = new class1(); alert(emp1[0]);//返回张三 alert(emp1[1]);//返回26
如果采用直接赋值的方法,我知道可以如下实现: function class1() { var _data = new Array('张三',26,'136012345678'); //注意是私有变量 for(var i=0;i<_data.length;i++) { this[i] = _data[i]; } } 有不直接赋值的其他方法吗?
aa.property1这个同上,等价写法是aa['property1']!结论:用数组就够了,哈
this.a1 = "aaa";}var aa = new class1();alert(aa["a1"]);
alert(aa.a1);aa[0]=123;
alert(aa[0]);
function class1()
{
this.a1 = "aaa";
}
var aa = new class1();
alert(aa["a1"]);
alert(aa.a1);
aa[0]=123;
alert(aa[0]);
上述做法我基本明白了,我理解为直接赋值,然后就可以直接取值了。我想继续请问:可不可以不直接赋值,取值时再动态计算?
比如我有如下类:
function class1()
{
var _data = new Array('张三',26,'136012345678'); //注意是私有变量
......
}
如何能做到:
var emp1 = new class1();
alert(emp1[0]);//返回张三
alert(emp1[1]);//返回26
function class1()
{
var _data = new Array('张三',26,'136012345678'); //注意是私有变量
for(var i=0;i<_data.length;i++)
{
this[i] = _data[i];
}
}
有不直接赋值的其他方法吗?
如果是object也可以同样的方法...什么意思.
什么叫 不直接赋值的其他方法?
<script type="text/ecmascript">
var MakeArray = function () {
var a = [false,1,2,"3"];
a.property = this.property;
return a;
}MakeArray.prototype.property = function () { alert("xx"); };
var c = new MakeArray;
c.property();
alert(new Number(c[0]));
alert(c[1]);
alert(c[2]);
alert(new Number(c[3]))
c[4] = 4;
alert(c.length);
</script>
function Class1(){
this[6]=123;
this['field3']=456;
this.property1=789;
this.property2="abc";
}
var obj=new Class1();
document.write(obj[6],"<br />");
document.write(obj['field3'],"<br />");
document.write(obj.property1,"<br />");
document.write(obj.property2,"<br />");
</script>