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程序的编写变得简单,结构清晰明了。

      

  • 相关阅读:
    idea 导入(非maven)web项目并发布到tomcat服务器
    EasyUI-combotree 下拉树 数据回显时默认选中
    千万级别数据量mysql优化策略
    MySQL忘记密码,或:root密码重置报错:mysqladmin: connect to server at 'localhost' failed的解决方案
    centOS 6.5下升级mysql,从5.1升级到5.7
    查看mysql数据库版本方法总结
    【转】App开发者必备的运营、原型、UI设计工具整理
    APP原型设计工具,哪家强?转自知乎
    数据库为什么要分库分表
    20180925-1 每周例行报告
  • 原文地址:https://www.cnblogs.com/webhtmlcss/p/4805406.html
Copyright © 2011-2022 走看看