JavaScript语言中的Literal Syntax特性
2010-09-14 13:22:13 来源:WEB开发网var ary2 =[]; //空数组,相当于 new Array();
varary3=[1,[2,[3,[4,[5,[6,[7,[8,[9,[0]]]]]]]]]];
第三个ary3是啥数组,我也不知道了@_@。
不对呀,怎么ary[5]是new MyObject()呢?哦,不好意思,我们再来把MyObject示例一下,假如它被定义为:
functionMyObject()
{
this.Properties1=1;
this.Properties2='2';
this.Properties3=[3];
this.toString=function()
{
return'[classMyObject]';
};
}
MyObject.prototype.Method1=function()
{
returnthis.Properties1+this.Properties3[0];
};
MyObject.prototype.Method2=function()
{
returnthis.Properties2;
};
那么我们的var obj = new MyObject()怎么文本化呢?其实也很简单的了,obj的文本化定义如下:
varobj=
{
Properties1:1,Properties2:'2',Properties3:[3],
Method1:function(){returnthis.Properties1+this.Properties3[0];},
Method2:function(){returnthis.Preperties2;}
};
这个类实例的直接文本化定义虽然算不上精简,但也还不错吧。这样我们就可以用这个文本化类实例去替换ary中那个newMyObject()了。类实例文本化定义的语法为,用一对"{}"表示类,也就说"{}"完全等价于"new Object()"。然后"{}"内按"key:value"组织属性和方法,key可以是任意[A-Za-z0-9_]的字符组合,甚至数字开头都是合法的@_@,value是任何的合法的文本化JavaScript数据,最后每个键值对用","来分隔就行了。
Tags:JavaScript Literal
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接