2017年6月21号 星期三 多云转雷阵雨 空气质量:中度污染~轻度污染

内容: JavaScript 原型式面向对象

01基于Object的对象的方式创建对象;02使用字面量赋值方式创建对象

03构造函数;04原型对象;05原型链

备注:老师休养回来第二节课,希望他手术的伤口尽快愈合,远离伤病痛苦。

一、基于Object的对象的方式创建对象

1、老师代码:

<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title>基于Object对象的方式创建对象</title></head><body> <script type="text/javascript">     //创建对象      var student=new Object();     //给对象增加属性     student.name="小黑";     student.age=50;     student.address="海淀";     //给对象增加方法     student.sleep=function(){         alert(this.name+"在睡觉");     }     //调用方法     student.sleep();

 </script>

</body></html>

2、自己代码:

<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title>基于Object创建对象</title></head><body><script type="text/javascript">    //创建对象    var person=new Object();    //给对象增加属性    person.name="香吉士";    person.age="32";    person.address="路飞的船上";    //给对象增加方法    person.cook=function(){    alert(this.name+"在做大餐!口水~");    }    //调用方法    person.cook();</script></body></html>

二、使用字面量赋值方式创建对象

1、老师代码:

<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title>使用字面量赋值方式创建对象</title>    <!--   字面量:  等号右边的!        var   a="haha";        a:变量名        haha:字面量    --></head><body>

  <script  type="text/javascript">        //使用字面量赋值方式创建对象      var  student={          name:"小白",          age:50,          address:"北京海淀区",          sleep:function(){             alert(this.name+"在睡觉");          }      };      //调用方法      student.sleep();        //如果说我们需要N个对象呢? 而且都有这些属性和方法???怎么避免代码重复?  </script>

</body></html>

2、自己代码:

<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title>使用字面量赋值方式创建对象</title></head><body><script type="text/javascript">    //使用字面量赋值方式创建对象    var person={        name:"郎晓明",        age:"38",        job:"中国内地男演员,歌手",        address:"北京市海淀区",        intro:function(){        alert("姓名:"+this.name+"\n年龄:"+this.age+"\n工作:"+this.job+"\n住址:"+this.address);    }    };    //调用方法    person.intro();</script></body></html>

三、构造函数

1、老师代码:

<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title>构造函数</title>    <!--       01.创建对应类型的对象       02.使用this关键字赋值(属性,方法)       03.new关键字

       定义构造函数的注意事项:        01.首字母大写        02.如果没有返回值,会自动创建对应类型的对象返回给我们        03.如果有返回值,就会返回这个返回值的类型!    --></head><body>

<script type="text/javascript">

    //定义一个构造函数    function Student(name,age,address){        //给属性赋值        this.name=name;        this.age=age;        this.address=address;        /*设置方法        this.showInfo=function(){            alert("姓名:"+name+"\n"+"年龄:"+age+"\n"+"地址:"+address);        }*/        this.showInfo=showInfo;    }    //全局作用域的方法  !  让所有的对象共享这个方法的实例    function  showInfo(){        alert("姓名:"+this.name+"\n"+"年龄:"+this.age+"\n"+"地址:"+this.address);    }

    /*验证有返回值    function  Person(name){        var  obj=new Object();        obj.name=name;        return obj;    }    var  obj1=new Person("haha");    alert(obj1  instanceof  Person);  false    alert(obj1  instanceof  Object);  true*/

   //创建多个对象    var  stu1=new Student("小黑1",10,"海淀1");    var  stu2=new Student("小黑2",20,"海淀2");    var  stu3=new Student("小黑3",30,"海淀3");    //调用各自的自我介绍方法   /* stu1.showInfo();    stu2.showInfo();    stu3.showInfo();    alert(stu1 instanceof  Student);*/

    //我们的showInfo是所有对象共有的方法!应该具有一个实例!!!    //alert(stu1.showInfo==stu2.showInfo);  false

   //优化   把这个方法提取出来 变成全局作用域的方法    alert(stu1.showInfo==stu3.showInfo);   //直接调用showInfo   发现 里面的数据 是没有的! 失去这个方法的意义了?  找不到this    showInfo();

</script>

</body></html>

2、自己代码:

<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title>构造函数</title></head><body><script type="text/javascript">    //定义构造函数    function Pirate(name,age,job){        //给属性赋值        this.name=name;        this.age=age;        this.job=job;

        //设置方法        this.showInfo= function () {            alert("姓名:"+name+"\n年龄:"+age+"\n职业:"+job);        }

    }    //创建多个对象    var pirate1=new Pirate("luffy",20,"captain");    var pirate2=new Pirate("zoro",21,"swordman");    var pirate3=new Pirate("sanji",23,"chef");

    //调用各自的自我介绍方法    pirate1.showInfo();    pirate2.showInfo();    pirate3.showInfo();</script></body></html>

四、原型对象

1、老师代码:

<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title>原型对象</title>    <!--       所有的对象都有一个原型对象(prototype),       原型对象中有一个constructor属性指向了 包含prototype属性的构造函数!

       原型对象:内存中给其他对象提供共享的属性和方法的对象!

    --></head><body>

<script type="text/javascript">    //构造函数    function  Student(name,age,address){        /**         * 这里面的属性和方法就是所有实例都可以共享的!         * 如果我们创建了N个对象!那么这N个对象使用的都是同一个属性和方法!         */        Student.prototype.name=name;        Student.prototype.age=age;        Student.prototype.address=address;        Student.prototype.showInfo=function(){            alert("姓名:"+this.name+"\n"+"年龄:"+this.age+"\n"+"地址:"+this.address);        }    }

      //创建对象    var  stu1=new Student("小河",10000,"水流淌");    stu1.showInfo();    var  stu2=new Student("大河",500,"哗啦啦");    stu2.showInfo();    //alert(stu1.showInfo==stu2.showInfo);  //true

    alert(stu1.constructor==Student);  //true    alert(stu1.__proto__==Student.prototype); //true

</script>

</body></html>

2、自己代码:

<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title>原型对象</title></head><body><script type="text/javascript">    function Pirate(name,age,job){        Pirate.prototype.name=name;        Pirate.prototype.age=age;        Pirate.prototype.job=job;        Pirate.prototype.showInfo= function () {            alert("姓名:"+name+"\n年龄:"+age+"\n职业:"+job);        }    }    //创建对象    var pirate1=new Pirate("nami",18,"航海士");    pirate1.showInfo();    var pirate2=new Pirate("robin",18,"历史学家");    pirate2.showInfo();    //验证几个结论    alert(pirate1.showInfo==pirate2.showInfo);//true    alert(pirate1.constructor==Pirate);//true    alert(pirate2.__proto__==Pirate.prototype);//true</script></body></html>

五、原型链

1、老师代码:

<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title>原型链</title>    <!--       01.一个原型对象是另一个原型对象的实例       02.相关的原型对象层层递进,就构成了实例和原型的链条,我们称之为 原型链!    --></head><body>

<script type="text/javascript">    //创建动物的构造函数    function Animal(){    }    Animal.prototype.name="动物";    //所有动物的睡觉方法    Animal.prototype.sleep=function(){        alert("动物在睡觉。。。");    }

    //创建小狗的构造函数    function Dog(){         //如果产生了关系,就类似于java中的继承!    }    Dog.prototype.name="小狗";    //小狗睡觉的方法    Dog.prototype.sleep=function(){        alert("小狗在睡觉。。。");    }

    /**     *     现在动物和小狗没有关系! 怎么让他俩有关系(原型-动物和实例-小狗)     *     01.Dog是一个函数     *     02.这个函数中有一个prototype属性     *     03.需要让prototype属性指向Animal     */     Dog.prototype=new Animal(); //Dog的原型对象是Animal原型对象的实例!产生关系!

    //创建小狗对象    var dog=new Dog();    alert(dog.name); // 需要观察Dog中是否存在name属性!  name属性是不是通过 函数名称.prototype.出来的!   //dog.sleep();  输出的是动物在睡觉

</script>

</body></html>

2、自己代码:

<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title>原型链</title></head><body><script type="text/javascript">

    //创建城市的构造函数    function City(){    }    //城市的属性    City.prototype.name="城市";    //所有城市的盖楼方法    City.prototype.buildHouse=function(){     alert("城市在建高楼。。。。。。");    }

    //创建北京的构造函数    function Beijing(){    }    //北京的属性    Beijing.prototype.name="北京";    //北京的盖楼方法    Beijing.prototype.buildHouse=function(){        alert("北京在建高楼。。。。。。");    }    /**     *     现在城市和北京没有关系! 怎么让他俩有关系(原型-城市和实例-北京)     *     01.Beijng是一个函数     *     02.这个函数中有一个prototype属性     *     03.需要让prototype属性指向City     */    Beijing.prototype=new City();//Beijing的原型对象是City原型对象的实例!产生关系!    //创建北京对象    var beijing=new Beijing();    alert(beijing.name);//输出的是“城市” 需要观察Beijing中是否存在name属性!name属性是不是通过函数名称.prototype.出来的!    beijing.buildHouse();//输出的是“城市在建高楼。。。。。。”

</script></body></html>

六、作业

1、练习今天老师讲的内容

2、看完MySQL

七、老师辛苦了!

转载于:https://www.cnblogs.com/wsnedved2017/p/7061283.html

2017年6月21号课堂笔记相关推荐

  1. 2017年4月21号课堂笔记

    2017年4月21号 星期五 空气质量:良 内容:XML,Dom4j解析XML文件,单例 一.XML 老师代码: <?xml version="1.0" encoding=& ...

  2. 2017年4月5号课堂笔记

    2017年4月5号 晴 轻度雾霾 内容:Set,Map,遍历集合的方法,泛型,小Demo,Collections工具类的使用 一.Set 老师代码: package cn.bdqn.test; imp ...

  3. 2017年5月5号课堂笔记

    2017年5月5号 星期五 沙尘暴转晴 内容:U2 HTML5第一节课 一.01第一个霸气的网页 1.老师代码: <!DOCTYPE html><html><head l ...

  4. 2017年3月13号课堂笔记

    2017年3月13号 晴 空气质量:优 内容:双重循环,Java基础总结 一.Double01(3个班级各4名学员参赛,求每个班的平均分) 1.老师代码: public class Double01 ...

  5. 2017年6月23号课堂笔记

    2017年6月23号 星期五 暴雨转阵雨 空气质量:良 内容: 01jQuery-Validate验证插件的使用:02bootstrap小例子: 03引用charisma代码小例子 一.jQuery- ...

  6. 2017年6月16号课堂笔记

    2017年6月16号 星期五 空气质量:中度污染~轻度污染 内容:jQuery:remove,bind,attr,on和live,同辈和父辈节点的操作, keyup/keypress/keydown, ...

  7. 2017年06月07号课堂笔记

    2017年06月07号 晴 空气质量:中度污染->良 内容:jQuery第二节:基本选择器,层次选择器,属性选择器, 基本过滤选择器,可见性过滤选择器 备注:代课老师:李老师 一.基本选择器 1 ...

  8. 2017年07月03号课堂笔记

    2017年07月03号 星期一  多云 空气质量:轻度污染~中度污染 内容:MySQL第四节课 in和not in:两个表的内连接:exists和not exsits的使用:all,any和some: ...

  9. 2017年4月24号课堂笔记

    2017年4月24号  晴  空气质量:中度污染 内容:反射及相关,java设计六大原则(自学) 一.反射机制 在 程序运行期间,对于任何一个类,都能获得它的所有方法和属性! 对于任何一个对象,都能调 ...

最新文章

  1. java 之 正则表达式
  2. koa2 mysql增删改查_koa2实现对mysql的增删改查函数封装
  3. 分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历_数据结构与算法学习笔记:图...
  4. C++学习之路 | PTA乙级—— 1027 打印沙漏 (20 分)(精简)
  5. 学计算机高中要买电脑,大一新生,打着学习的“口号”要求买电脑,父母到底该不该答应?...
  6. mysql异常关闭7034,SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数
  7. Spark cluster 安装
  8. 埃斯顿服务器上电无显示,埃斯顿伺服常见现象报警及排除
  9. Windows开机自动启动Virtual Box虚拟机(官方指南手册)
  10. LayaAir graphics 矢量绘图之直线、折线、曲线
  11. 14款超实用的Unity3D常用插件推荐
  12. 看Panasonic EZ0l21充电器有感
  13. 问卷:城市名 转换成 城市线:一线、新一线、二三四五线
  14. aix 到 linux的网络,通过VIOS实现AIX系统的网络虚拟化
  15. ODC(Orthogonal Defect Classification)简介
  16. python无法打开_python程序无法打开是怎么回事
  17. 计算机无法进bios,del和F2进不了bios,详细教您电脑进不了bios怎么办
  18. Guava前置条件Preconditions类(参数校验)
  19. 上海跃兔网络科技有限公司简介
  20. QQ自动添加好友脚本工具分享

热门文章

  1. httpd-2.2和httpd-2.4安装部署
  2. python列表常用方法
  3. SecureCRT快捷键
  4. 复用的具体实现方式组合与继承的特点
  5. LNMT部署详细步骤并实现动静分离和负载均衡
  6. cscope使用技巧
  7. 优云携手网易云 助力企业“互联网+”转型
  8. win7 命令行设置DNS,建立集测环境
  9. myeclipse 清理项目缓存的几大步骤
  10. 腾讯SNG的实习offer(多篇面经分享)