您好,欢迎访问一九零五行业门户网

Javascript_6_自定义对象

javascript_6_自定义对象
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=gbk" /> <title>javascript演示8_自定义对象</title> </head> <body> <h1>javascript演示8_自定义对象</h1> <script type="text/javascript" src="a.js"> </script> <script type="text/javascript"> /* * js当中用函数可以完成java中的自定义对象! * 为与一般函数区分:首字母大写 * 动态给对象添加属性,直接函数名.属性名赋值即可 * 动态给对象添加方法,直接赋值为匿名函数即可! */ function person(){//相当于构造器 println("person run"); } person(); //打印出:person run person.country="cn"; println(person.country);//cn person.show=function(){ println("show run..."); } person.show();//show run... //建立对象:使用new 函数名()即可! var p=new person(); p.name="pre_eminent"; p.age="20"; p.method=function(){ println(this.name+"..."+this.age); } p.method();//pre_eminent...20 //由上可知:直接为对象的属性赋值为一个匿名函数 //就是给对象添加了一个方法(即行为)! var obj=new object(); obj.name="god"; obj.age=2013; println(obj.name+"..."+obj.age);//god...2013 /* * 下面代码是:先描述 后调用! */ function person(name,age){ this.name=name; this.age=age; this.setname=function(n){ this.name=n; } this.setage=function(a){ this.age=a; } this.getname=function(){ return this.name; } this.getage=function(){ return this.age; } } //建立一个该类的对象,并传参 var p=new person("xixi",22); println(p.getname());//xixi println(p.getage());//22 p.setname("hehe"); p.setage("23"); println(p.getname());//hehe println(p.getage());//23 for(i in p){ println(i); //println(p.i);这样调用全是undefined! //println(p[i]); } /*下面是打印i的结果: * name age setname setage getname getage */ /*下面是打印p[i]的结果: * xixi 22 function(n){ this.name=n; } function(a){ this.age=a; } function(){ return this.name; } function(){ return this.age; } */ document.write("<hr />"); //下面演示另外一种自定义对象的方式: //用大括号封装实体!键值用冒号连接,键值对之间用分号隔开 var p1={ //定义一些成员 "name":"史湘云","age":20,"getname":function(){ return this.name; },"getage":function(){ return this.age; } } println(p1.name);//史湘云 println(p1.age);//20 //也可以这样:(二者区别在哪儿???) println(p1["name"]);//史湘云 println(p1["age"]);//20 /* * 通过上面可以看出: * 对象调用成员有两种方式: * 1,对象.属性名 * 2,对象["属性名"] */ //for in语句遍历自定义对象 for(i in p1){ println(p1[i]); } /*这样子取得是等于号右边的内容(即值) * 史湘云 20 function(){ return this.name; } function(){ return this.age; } */ for(i in p1){ println(i); } /*这样子取得是等于号左边的内容(即名称) * name age getname getage */ for(i in p1){ println(p1.i);//啥也没有,全是undefined } //下面接着演示第2种自定义对象的方式: //用大括号封装实体!键值用冒号连接,键值对之间用分号隔开 var map={ 1:"林黛玉",2:"史湘云",3:"薛宝钗" } var girl=map[1]; println(girl);//返回:林黛玉 var girl=map[2]; println(girl);//返回:史湘云 var girl=map[3]; println(girl);//返回:薛宝钗 //不也可以通过一个函数通过键拿值 function get(key){ return map[key]; } for (var i=1; i <= 3; i++) { println(get(i)); } /* 林黛玉 史湘云 薛宝钗 */ //编程习惯:如果是实体 变量名就用object的o打头 var ox=new person(); var by=true; var iz=2467; //下面接着演示更为复杂的第2种自定义对象的方式: //用大括号封装实体!键值用冒号连接,键值对之间用分号隔开 var omap={ 1:"林黛玉",2:"史湘云",3:"薛宝钗" } var omyobj={ myname:"pre_eminent", myage:20//注意:结尾千万不能有逗号 } println(omyobj.myname);//pre_eminent println(omyobj["myname"]);//pre_eminent //下面这种:键也是字符串格式,效果一样! var omyobj2={ "myname2":"pre_eminent", "myage2":20 } println(omyobj2.myname2);//pre_eminent println(omyobj2["myname2"]);//pre_eminent //复杂的形式: var mymap={ names:["a","b","c","d","e"], ages:[18,20,22,24,21]//注意:结尾千万不能有逗号 } println(mymap.names[2]);//返回c println(mymap.names[3]);//返回d var mymap2={ names:[{name1:"林黛玉"},{name2:"史湘云"}] } println(mymap2.names[1].name2);//返回:史湘云 </script> </body> </html>
以上就是javascript_6_自定义对象的内容。
其它类似信息

推荐信息