zoukankan      html  css  js  c++  java
  • 8.30——9.4日随笔之一(面向对象)

      在前面随笔中我梳理了一下BFC的知识,接下来我来理一理JS中面向对象概念,在JS中面向对象的说法其实只是一种比喻,在JS中并无类,而是一种和类性质差不多的原型函数;先举个例子:猪和牛都是属于动物这个大的类别里面的,具有一些相同的属性,比如四肢行走,睡觉,以及其它一些共同属性的;但是猪和牛有着各自不同的属性,例如牛可以挤奶,可以耕地;猪可以用来吃,用来吃,以及用来吃等等等。而原型函数的作用就是这样,先定义一个原型函数Animal来,光写没用,我来敲一下:

      首先定义一个Animal原型函数:    

        function  Animal (eat,drink,sleep){                           <----------- 定义原型函数首字母要记得大写

          this.eat =eat;this.drink =drink;this.sleep=function(){alert("八个小时")}

        }

      再定义一个牛的原型函数:

        Cow.prototype=new Animal();            <------这是真实继承法,必须写

        function Cow(name,eat,drink){

          this.name=name;this.use=function(){alert("耕地")};this.constructor(eat,drink,sleep);<-------这是相当于在往Animal里面传参

        }

      再定义一个猪的原型函数:

        pig.prototype = new .Animal();

        function Pig(name,eat,drink){

          this.name=name;this.use=function(){alert("食用")};this.constructor(eat,drink,sleep);

        }

      var cow=new Cow("牛","草","水");  <----------------创建一头牛
      alert(cow.name+"=="+cow.eat+"=="+cow.drink);<-----可以同时调用Animal和Cow的属性

      cow.sleep();
      cow.use();

      var pig =new Pig("猪","猪饲料","水");<----------------创建一头猪

      alert(pig.name+"=="+pig.eat+"=="+pig.drink);<-----可以同时调用Animal和Pig的属性

      pig.sleep();

      pig.use();

      console.log(Cow instanceof Animal);//判断Animal是否为Cow的原型,返回true为是,false为否;

      从上面的例子可以看出,原型函数可以很好的让一些JS程序的编写变得简单,结构清晰明了。

      

  • 相关阅读:
    zoj-3433-Gu Jian Qi Tan
    优先队列详解(转载)
    HDU-3661-Assignments
    hdu-1052-Tian Ji -- The Horse Racing(经典)
    POJ-1456-Supermarket
    UVA-11292Dragon of Loowater
    UVA-11729-Commando War
    循环日程表 问题(递归分治)
    八数码问题
    POJ-3273 Monthly Expense (最大值最小化问题)
  • 原文地址:https://www.cnblogs.com/webhtmlcss/p/4805406.html
Copyright © 2011-2022 走看看