函数,对象,类的演进
2015-12-26 13:48
197 查看
1.一般函数
还在coding c#的时候,用JS页面层做输入校正,第一次接触 function 这个东西,
2. 函数有另一种写法 --- 匿名函数 or 函数变量化
来了一点新鲜和好奇,随即学习了下why?因为js预解析时候对变量和函数采取的策略是不同的,所以这2种写法效果还是有点同的具体在上一篇有简单说明
但是这2种方法在团队开发会遇到一个很大的问题,方法被覆盖而不容易察觉到。
那么久引用一个简单直观的方法 --- 3.对象收编变量
先不说这样写的好处,以为还有一种
4.对象的另一种形式
这2种写法结果是一样的,区别是前一种写法方法更集中,更直观,方便查阅,后一种方便拓展,在实际开发中可以结合起来使用。
除了刚那区别大概都是相同的了,相同的调用方法:chk.chkName(name) , 具体方法可以拓展,也可以被覆盖。
优点 :一定数量上减少了变量,降低了被覆盖的概率,只是降低而已。有了面向对象的影子。
缺点:新创建的对象不能被继承;方法还是会被覆盖,方法只是集中了并没有封装
进一步封装 --- 5.对象的初步类化
这样写可以对上面2中写法加以封装,使得chk对象只能在 retrun 代码块拓展公共方法。使得自己的方法更好共同管理。
每次调用的时候,其实都是使用一个ruturn 新对象体,
最后的封装 -- 类
在原型链上扩展方法能直接别继承
还在coding c#的时候,用JS页面层做输入校正,第一次接触 function 这个东西,
function chkName(name){ //验证代码 } function chkEmail(email){ //验证代码 }
2. 函数有另一种写法 --- 匿名函数 or 函数变量化
var chkName = function(name){ //验证代码 } var chkEmail = function(email){ //验证代码 }
来了一点新鲜和好奇,随即学习了下why?因为js预解析时候对变量和函数采取的策略是不同的,所以这2种写法效果还是有点同的具体在上一篇有简单说明
但是这2种方法在团队开发会遇到一个很大的问题,方法被覆盖而不容易察觉到。
那么久引用一个简单直观的方法 --- 3.对象收编变量
var ckh = { chkName: function(name) { //验证代码 }, chkEmail: function(email) { //验证代码 } }
先不说这样写的好处,以为还有一种
4.对象的另一种形式
var ckh = {} ckh.chkName= function(name) { //验证代码 } ckh.chkEmail= function(email) { //验证代码 }
这2种写法结果是一样的,区别是前一种写法方法更集中,更直观,方便查阅,后一种方便拓展,在实际开发中可以结合起来使用。
除了刚那区别大概都是相同的了,相同的调用方法:chk.chkName(name) , 具体方法可以拓展,也可以被覆盖。
优点 :一定数量上减少了变量,降低了被覆盖的概率,只是降低而已。有了面向对象的影子。
缺点:新创建的对象不能被继承;方法还是会被覆盖,方法只是集中了并没有封装
进一步封装 --- 5.对象的初步类化
var ckh =function() { return { chkName:function(name) { //验证代码 }, chkEmail:function(email) { //验证代码 } } }
这样写可以对上面2中写法加以封装,使得chk对象只能在 retrun 代码块拓展公共方法。使得自己的方法更好共同管理。
每次调用的时候,其实都是使用一个ruturn 新对象体,
最后的封装 -- 类
var ckh = function() { this.chkName = function(name) { console.log("chkName") //验证代码 }; this.chkEmail = function(email) { console.log("chkEmail") //验证代码 } }
在原型链上扩展方法能直接别继承
相关文章推荐
- file_get_content和curl的性能比较
- checkbox选中属性---坑到死
- 语音的基础知识
- [Java开发之路]Java字符串的10大热点问题盘点
- javascript进阶系列专题:作用域与作用域链
- 语音增强简介
- LintCode majority numbe (主元素)
- java 构造方法
- Android动态轮播焦点图
- Android启动过程深入解析
- 【线性规划与网络流24题】孤岛营救问题 分层图
- Next Permutation
- GOROOT、GOPATH、GOBIN、project目录
- Fragment
- 四层和七层负载均衡的区别
- Android获取TextView控件高度(其它View类似,TextView有特殊之处)
- 最后关于Pipeline完整的图如下:
- 操作系统实验之作业调度算法
- python的out of memory问题
- nginx 配置详解