zoukankan      html  css  js  c++  java
  • 函数,对象,类的演进

    1.一般函数

    还在coding  c#的时候,用JS页面层做输入校正,第一次接触 function 这个东西,

    function chkName(name){
       //验证代码  
    }
    function chkEmail(email){
        //验证代码  
    }
    

     2. 函数有另一种写法 --- 匿名函数 or 函数变量化

    1 var chkName  =  function(name){
    2    //验证代码 
    3 }
    4 var  chkEmail  = function(email){
    5     //验证代码 
    6 }

    来了一点新鲜和好奇,随即学习了下why?因为js预解析时候对变量和函数采取的策略是不同的,所以这2种写法效果还是有点同的具体在上一篇有简单说明

    但是这2种方法在团队开发会遇到一个很大的问题,方法被覆盖而不容易察觉到。

    那么久引用一个简单直观的方法 --- 3.对象收编变量

    1  var ckh = {
    2         chkName: function(name) {
    3             //验证代码 
    4         },
    5         chkEmail: function(email) {
    6             //验证代码 
    7         }
    8     }

    先不说这样写的好处,以为还有一种

    4.对象的另一种形式

    1     var ckh = {}
    2     ckh.chkName= function(name) {
    3         //验证代码 
    4     }
    5 
    6     ckh.chkEmail= function(email) {
    7         //验证代码 
    8     }

    这2种写法结果是一样的,区别是前一种写法方法更集中,更直观,方便查阅,后一种方便拓展,在实际开发中可以结合起来使用。

    除了刚那区别大概都是相同的了,相同的调用方法:chk.chkName(name) , 具体方法可以拓展,也可以被覆盖。

    优点 :一定数量上减少了变量,降低了被覆盖的概率,只是降低而已。有了面向对象的影子。

    缺点:新创建的对象不能被继承;方法还是会被覆盖,方法只是集中了并没有封装

    进一步封装  --- 5.对象的初步类化

     1     var ckh =function() {
     2         return {
     3             chkName:function(name) {
     4                 //验证代码 
     5             },
     6            chkEmail:function(email) {
     7                 //验证代码 
     8             }
     9         }
    10     }

    这样写可以对上面2中写法加以封装,使得chk对象只能在 retrun 代码块拓展公共方法。使得自己的方法更好共同管理。

    每次调用的时候,其实都是使用一个ruturn 新对象体,

    最后的封装   --

    1    var ckh = function() {
    2         this.chkName = function(name) {
    3             console.log("chkName") //验证代码 
    4         };
    5         this.chkEmail = function(email) {
    6             console.log("chkEmail") //验证代码 
    7         }
    8     }

    在原型链上扩展方法能直接别继承

  • 相关阅读:
    随笔javascript/html5裁剪初试
    javascript开发随笔1,preventDefault的必要
    uploadify/swfupload HTTP_ERROR 406、302
    Python中__init__方法注意点
    ehcache.xsd No grammar constraints (DTD or XML Schema).
    Eclipse Organize Import 批量导包
    eclipse thymeleaf 插件安装
    windows 下 查看某个端口是否已经使用
    找符号网
    杀毒软件
  • 原文地址:https://www.cnblogs.com/liubl/p/5077990.html
Copyright © 2011-2022 走看看