js:创建对象

创建对象的第一种方式:

   <scripttype="text/javascript">

//定义一个类,用的是function而不是class 

   function Class1(){

       //定义两个属性 

        this.x=1;

        var y=1;

       //定义一个方法

        this.fangfa=function (){

             alert("x="+this.x);

             alert("y="+y);

             }

         }

//实例化对象

var cl=new Class1();

//访问对象属性的时候,可以使用[]也可以使用"."

//alert(cl.x);

//alert(cl["x"]);

cl.fangfa();

</script>

 

第二种方式:

<scripttype="text/javascript">

//通过new Object()

 //var obj=new Object();

 

 //定义空白类

 function Test(){

       

       }

//实例化  

  var obj=new Test();    

 

 //定义属性

 obj.name="凤姐";

 obj.age="108";

 //定义方法

 obj.fangfa=function (){

       alert(this.age);

       }

  alert(obj.fangfa());

 

</script>

 

使用prototype的方式想对象中添加属性和方法

 

 1)创建类,比如类名 Test

 2)用"类名.prototype"定义新的属性或者是方法

 

例子:

<scripttype="text/javascript">

 //定义一个空白的类

  function Testpro(){}

  //通过prototype向类中添加属性

  Testpro.prototype.name="白骨精";

 

   //实例化

  var tp=new Testpro();

  alert(tp.name);

</script>

 

 

关于共有和私有属性问题:

 用var定义的属性是私有的。我们需要使用this关键字来定义共有的属性

 

 

虚拟构造函数:

<scripttype="text/javascript">

 

  //自己虚拟一个构造方法

  function Test(a,b){

       var x;

       var y;

        //定义一个共有的方法

       this.init=function (){

            x=a;

            y=b;

            alert("Test类已经被初始化,执行虚拟构造函数");

            alert(a+"==="+b);

            }

            //调用自身的init方法

            this.init();

            

         this.getX=function(){              

                 alert(x);

                 }

                

         this.getY=function(){           

                 alert(y);

                 }

                

        }

//实例化

var obj=newTest(3,4);

obj.getX();

obj.getY();

 

obj.gun="枪";

alert(obj.gun);

/*

  上述的定义和获取,采用已经实例化的对象进行操作

  这种定义一般比较普遍,定义不是静态属性,属于对象的

*/

 

//通过类名.属性名 定义是静态属性,和一般定义的区别是,这个属性是属于类的,不是属于对象的

Test.count=10;

alert(Test.count);

</script>

 

  //json格式的字符串

<scripttype="text/javascript">

  varstr="[{id:'1',name:'gao'},{id:'2',name:'凤姐'}]";

  //将json格式的字符串转换为 对象

  varobj=eval("("+str+")");

  //alert(obj.length);

  for(var i=0;i<obj.length;i++){

       alert(obj[i].id+","+obj[i].name);

        }

</script>

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值