自定义对象-for-in语句
用js来描述我们自己的对象,如类似java当中的Person类
这个功能很强大的,function中可以定义属性和方法!类似Java中class。
演示代码:
<html> <head> <title>自定义对象的用法演示</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <script type="text/javascript" src="out.js"> </script> <!-- 用js来描述我们自己的对象,如类似java当中的Person类 --> <script type="text/javascript"> /* js是基于对象的,如果要描述对象,那么可以用function。因为js中的 function功能和java中的类(模板) 本质上是差不多的---里面可以添加变量,也可以添加自定义函数 */ function Person(){ //alert("Person的构造方法..."); } var p = new Person(); //给对象添加属性,直接采用“p.属性名=”的形式赋值就行---如果没有则是添加,如果有则是修改 //※※方式1:在对象外面添加属性和方法 p.name = "Jack"; p.age = 23; //alert(p.name+","+p.age); //给对象添加函数 p.info = function(){//相当于toString() return this.name + "," + this.age; }; println("p的信息:" + p.info()); </script> <script type="text/javascript"> var obj = new Object(); //※※方式1:在对象外面添加属性和方法 //1给对象添加属性 obj.name = "god"; obj.age = 10000; //2给对象添加属性 obj.toString = function(){ return this.name + "," + this.age; } println(obj); </script> <!-- 注意:前面用“对象.prototype.属性或函数名=***”的形式,更改的是原型对象 而本例用 “对象.属性或函数名=***”的形式,更改的是当前对象(原型对象的克隆体) --> <script type="text/javascript"> //js自定义对象的构造器+属性+方法 function Person(name, age){ //※※方式2:在函数对象里面添加属性和方法 this.name = name; this.age = age; this.toString = function(){ return this.name + "," + this.age; }; this.setName = function(name){ this.name = name; }; this.getName = function(){ return this.name; }; } var p2 = new Person("Tom", 22); println("p2.name=" + p2.name + ", p2.age=" + p2.age); println("p2= " + p2); p2.setName("Rose"); println("p2=" + p2); println("p2.getName=" + p2.getName()); </script> <script type="text/javascript"> println("<hr/>"); //用for...in语句操作自定义对象 for( var x in p2){//x是函数中的成员变量与成员方法的名称 println("x="+x+"-----"+p2[x]);// p2[x]就是valeOf(x) } </script> </body> </html>
360浏览器8.1 演示结果: