美文网首页
对象_原型

对象_原型

作者: 从前慢pearl | 来源:发表于2017-07-31 15:55 被阅读0次

问题1:OOP 指什么?有哪些特性

1)面向对象程序设计
2)封装 继承 多态
封装:构造一个的对象,给这个对象 添加属性和方法,完成这个对象的过程就叫封装
继承:子类继承父类 子类拥有父类的方法和属性 子对象可以使用父类的方法 javascript里面有五种继承方法
第一种, 使用apply call 构造函数绑定方法。第二种, prototype模式 cat.prototype=new Animate。第三种,直接继承prototype ,cat.prototype=Animate.prototype。第四种,利用空对象作为中介继承prototype。第五种,拷贝继承。
多态:一个引用类型在不同情况下的多种形态,传入的对象不同 同样的方法 最终的结果不同

问题2: 如何通过构造函数的方式创建一个拥有属性和方法的对象?

 function  person(name,age,fruit){
      this.name=name;
      this.age=age;
      this.fruit=fruit;
      this.eat=function(){
              console.log(this.name+'喜欢吃'+this.fruit)
      }
 }
//new实例化
var me=new person('pearl',18,'橘子')
console.log(me.name)      //pearl

me.eat() //pearl喜欢吃橘子

问题3: prototype 是什么?有什么特性

1)原型链对象
2)函数默认有一个prototype属性 实例化这个函数时prototype会转化成proto 默认constroctur的值保存着原函数的地址 this指向当前实例化的这个对象 当实例化的对象要调用某个方法时 自身实例化对象上没有则到原型链上查找。

问题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('kyle');
 var p2 = new People('vanko');

问题5:创建一个 Car 对象,拥有属性name、color、status;拥有方法run,stop,getStatus

 function Cat(name,color,status){
   this.name=name;
   this.color=color;
   this.status=status;
 }
Cat.prototype.run=function(){
   console.log("我是一只会跳的"+this.name+"猫")
}
Cat.prototype.stop=function(){
   console.log("我可以自己停下来")
}
Cat.prototype.getStatus=function(){
   console.log("我在"+this.status)
}
var cat1=new Cat("呀呀","白色","睡觉")
cat1.name   //呀呀
cat1.color     //白色
cat1.run()     //我是一只会跳的呀呀猫
cat1.stop()    //我可以自己停下来
cat1.getStatus()   //我在睡觉

问题6:创建一个 GoTop 对象,当 new 一个 GotTop 对象则会在页面上创建一个回到顶部的元素,点击页面滚动到顶部。拥有以下属性和方法

          //1. `ct`属性,GoTop 对应的 DOM 元素的容器
          //2.  `target`属性, GoTop 对应的 DOM 元素
          //3.  `bindEvent` 方法, 用于绑定事件
          //4 `createNode` 方法, 用于在容器内创建节点
    function GoTop(obj){
         this.ct=obj.ct
         this.text=obj.text
         this.createNode()
         this.bindEvent()
    }
    GoTop.prototype.bindEvent=function(){
        this.target.on('click',function(){
            $(window).scrollTop(0)
        })
    }
    GoTop.prototype.createNode=function(){
        this.target=$('<div class="gotop">'+this.text+'</div>')
        this.ct.append(this.target)
    }

    var obj1={
        ct:$('body'),
        text:'go to top'
    }

    var gotop=new GoTop(obj1)

代码

问题7: 使用木桶布局实现一个图片墙

预览
代码

相关文章

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

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

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

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

  • 📕 原型对象

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

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

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

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

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

  • JavaScript

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

  • Javascript-原型与原型链

    简单介绍 JavaScript 每个对象都拥有一个原型对象,对象以其原型为模板从原型中继承方法和属性; 原型对象也...

  • 对象初始化的不同方式

    不带原型的对象 带原型的对象

  • 原型链

    原型链函数的原型对象prototype函数都有prototype属性指向函数的原型对象【只有函数根除外】原型对象的...

  • 3.原型链、eval、Function等用法

    原型 原型本身是一个对象,这个对象的属性与方法可供其他对象。 谁有原型 默认所有的对象都有原型 谁有prototy...

网友评论

      本文标题:对象_原型

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