JavaScript学习--对象

来源:互联网 发布:行知教育集团 编辑:程序博客网 时间:2024/06/10 22:22
/**************对象********************/
        //面向对象的特征:封装、继承、多态
        //面向对象:可以创建自定义的类型,很好的支持继承和多态,面向对象的语言有C++、Java、C#
        //基于对象:无法创建自定义的类型、不能很好的支持继承和多态,基于对象的语言有JavaScript
        /*//1.创建对象
        var hero=new Object();
//2.设置属性--特征
hero.name="hero";
hero.level=0;//等级 
hero.diamond=0;//钻石
//3.设置方法--行为
hero.move=function(){
alert("move left");
}
hero.attack=function(name){
//this指当前对象,在这里指hero这个对象
//注意:只有在当前对象的方法中,this才是当前对象
alert(this.name+"攻击"+name);
}
alert(hero.name);
alert(hero.move());
alert(hero.attack("怪兽"));*/


//创建多个不同对象--自定义构造函数
/*var createStudent=function(name,age,score){
var student=new Object();
//创建对象
student.name=name;
student.age=age;
student.score=score;
student.sayHello=function(){
alert("hello");
}
return student;
}

var s1=createStudent("qiu",12,30);
var s2=createStudent("zhi",23,90);
alert(s1.name);
   alert(s2.sayHello());*/
   
   //方法二:创建对象
   //1.内存开辟空间,存储新创建的对象new Object
        //2.把this设置为当前对象
//3.执行函数内部的代码,设置对象的属性和方法
//4.返回新创建的对象
   /*function Student(name,age,score){
    this.name=name;
    this.age=age;
    this.score=score;
    this.sayHello=function(name){
    alert("hello "+this.name);
    }
   }
   var s1=new Student("qiu",12,30);
   var s2=new Student("zhi",13,34);
   alert(s1.sayHello(s2.name));
   alert(s1["name"]);//这种写法相当于s1.name;*/
   
   //动态给对象设置属性
   /*var o=new Object(); 
   for (var i=0;i<10;i++) {
    o["n"+i]=i;
   }
   alert(o.n2);*/
   
   /**
    * 总结:
    * 1.什么时候是undifined,什么时候是not defined
    * alert(a);//报错-not defined
    * var a;
    * alert(a);//undifined
    * 2.函数可以作为另一个函数的参数,函数可以作为函数的返回值
    * 3.对象可以封装一组数据,方便以后的使用
    * 4.对象概念:----学习之美在于一头雾水
    * a、一组无序属性的集合;
    * b、对象可以看出键值对;如student["name"];
    * c、属性可以包含基本值、对象和函数
    * 5.对象的组成:
    * a、属性--特征
    * b、方法--行为
    * c、事件
    * 6.函数和方法的区别
    * 7.构造函数:
    * a、构造函数的目的是用来创建对象
    * b、使用new Object()创建对象
    * c、封装函数创建多个对象
    * d、自定义构造函数:
    *   (1)内存开辟空间,存储新创建的对象new Object
    *   (2)把this设置为当前对象
    *   (3)执行函数内部代码,设置对象的属性和方法
    *   (4)返回新创建的对象
    * 8.this关键字--当前对象
    * 
    */
   
   //对象字面量
   /*var o={
    name:"qiuzhiwen",
    age:14,
    score:50,
    sayHello:function(){
    alert("hello "+this.name);
    }
   };*/
   
   //JSON--JavaScript Object Notation类似于对象字面量
   //json是描述数据的一种标准规范,可以跨语言
   /*var o={
    "name":"qiuzhiwen",
    "age":30,
    "score":80
   };*/
  
   /*var arr=new Array();
   //输出对象的属性和方法
   //注意:有些系统提供的对象的属性和方法无法遍历,原因是对象的属性和方法被设置为不可遍历
   alert(arr);//输出为空
   for (var key in arr) {
    alert(key);
   }*/
原创粉丝点击