美文网首页
第三十五弹-对象、原型

第三十五弹-对象、原型

作者: 我是小韩 | 来源:发表于2016-07-27 12:36 被阅读0次

一、问答

1.OOP 指什么?有哪些特性 (难度: ***)

OOP指的是面向对象编程(Object Oriented Programmming)是一种计算编程架构。OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或者对象组合而成。
特性:
封装 :就是将一个类的使用和实现分开,只保留部分接口和方法与外部联系 。
继承:子类自动继承其父级类中的属性和方法,并可以添加新的属性和方法或者对部分属性和方法进行重写。继承增加了代码的可重用性。
多态:多个子类中虽然都具有同一个方法,但是这些子类实例化的对象调用这些相同的方法后却可以获得完全不同的结果,多态性增强了软件的灵活性。


2.如何通过构造函数的方式创建一个拥有属性和方法的对象? (难度: ***)

构造函数:任何函数使用new表达式就是构造函数,下面是一个构造函数的简单例子和使用方法

       function People(name){
         this.name=name;
         this.sayHi=function(){
           console.log(this.name+'say:Hi!');
         }
       }
       var p1=new People("xiaohan");
       var p2=new People("xiaosusu")
       p1.sayHi();
       p2.sayHi();

3.prototype 是什么?有什么特性 (难度: ***)

每个构造函数上,构造函数都有prototype属性(其实是所有函数都有prototype属性,默认是object),
构造函数中的prototype属性就是原生对象,在使用构造函数生成对象实例时,实例对象通过构造函数的prototype属性找到原生对象,并继承原生对象的属性和方法。
作用:原型对象上的所有属性和方法,都能被派生对象共享。这就是JavaScript继承机制的基本设计机制


4.画出如下代码的原型图 (难度: ****)

      function People (name){
        this.name = name;
        this.sayName = function(){
          console.log('my name is:' + this.name);
        }
      }

      People.prototype.walk = function(){
        console.log(this.name + ' is walking');
      }

      var p1 = new People('饥人谷');
      var p2 = new People('前端');
Paste_Image.png

5.以下代码中的变量name有什么区别

      function People (){
        var name = "饥人谷"       //函数内部局部变量
        this.name = "我";        //实例对象属性  每个实例对象初始化的name属性就是“我”
      }
      People.name = "jscode";   //静态属性   函数People的属性

      People.prototype.name = "学前端";   //实例对象所对应原生对象属性,会被实例对象继承,
                                          //如果实例对象有name属性,则会被覆盖

二、代码

1.创建一个 Car 对象,拥有属性name、color、status;拥有方法run,stop,getStatus (难度: ****)

      function Car(name,color){
        this.name=name;
        this.color=color;
        this.status="stop";
      }
      Car.prototype={
        run:function(){
          this.status="run";
        },
        stop:function(){
          this.status="stop";
        },
        getStatus:function(){
          return this.status;
        }
      };

2.创建一个 GoTop 对象,当 new 一个 GotTop 对象则会在页面上创建一个回到顶部的元素,点击页面滚动到顶部。拥有以下属性和方法
ct属性,GoTop 对应的 DOM 元素的容器
target属性, GoTop 对应的 DOM 元素
bindEvent 方法, 用于绑定事件
createNode 方法, 用于在容器内创建节点

      function GoTop($ct,$target){
        this.$ct=$ct;
        this.$target=$target;
        this.init();
      }
      GoTop.prototype={
        bindEvent:function(){
          this.$target.on("click",function(){
            $(window).scrollTop(0);
          })
        },
        createNode: function(){
          this.$ct.append(this.$target);
        },
        init:function(){
          this.createNode();
          this.bindEvent();
        }
      };
      var $target=$('<div id="goTop">goTop</div>');
      var goTop=new GoTop($(".ct"),$target);

参考文档:


本教程版权归小韩同学和饥人谷所有,转载须说明来源

相关文章

  • 第三十五弹-对象、原型

    一、问答 1.OOP 指什么?有哪些特性 (难度: ***) OOP指的是面向对象编程(Object Orient...

  • javascript中面向对象编程-创建对象之原型模式

    理解名词:对象 原型对象 原型属性 函数 构造函数 实例 对象: Object,创建对象,对象属性方法原型对象:...

  • 面向对象--第四弹原型链

    原型链式是个好东西,我们可以靠这个东西实现继承和派生。我们需要明白一些概念,原型,原型对象,原型链。我们一个个的来...

  • JS重要概念之原型与原型链

    #Prototype原型对象 原型对象Function.prototype,具备以下特点:原型对象prototyp...

  • 面向对象--第三弹this

    在前面的文章里提到了this,今天就详细的说下吧。怎么判断this是指向谁的--谁调用了这个方法这个this就指向...

  • 📕 原型对象

    基本概念 原型 每一个对象都有它的原型对象,可以使用自己原型对象上的所有属性和方法 原型链 对象有原型,原型也是对...

  • 原型链

    对象的创建方法 输出的结果为 可以看到第三种只输出了一个空对象,原因后面补上。 原型,构造函数,实例,原型链 首先...

  • 原型对象和对象原型以及原型链

    首先我们要知道,什么是原型对象,什么又是对象原型? 1.原型就是原型对象------prototype 作用就是...

  • 面向对象之原型对象和其他补充

    原型对象概念 原型对象的作用 如何访问构造函数的原型对象 ① 构造函数.protoType ② 对象.__prot...

  • JavaScript

    原型: 原型对象也是普通的对象,是对象一个自带隐式的 proto 属性,原型也有可能有自己的原型,如果一个原型对象...

网友评论

      本文标题:第三十五弹-对象、原型

      本文链接:https://www.haomeiwen.com/subject/rurijttx.html