虽然平常用jquery用的很熟,但是基本都是面向过程的写法。一个事件一个function,很少有面向对象的写法。今天得写一个日期控件,不得不用上面向对象编程。

刚开始我的想法是:

var datepicker = function(){
return new datepicker.fn.init();
} datepicker.fn = datepicker.prototype={
constructor:datepicker,
init:function(){ }
} datepicker.fn.init.prototype = datepicker.fn; datepicker.extend = datepicker.fn.extend = function(){};

//静态方法
datepicker.extend({
createHtml:function(){
}
});

嗯,你没看错,就是仿照Jquery的写法。

但是,事实上,还是我学艺不精,extend里的方法根本无法继承。

这种写法的本意是将extend里的静态方法当成参数,传到extend方法里,然后根据具体的方法名返回相应的function。

而我写的代码里根本就忽略了extend方法,以为只要是一个空的function就可以了。

关于jquery的核心代码以及框架,还是看一下链接吧:

http://nuysoft.iteye.com/blog/1182087

所以我还是老老实实的用普通的prototype方法写吧。

var datePicker = function(){
this.init();
}

// 静态方法
datePicker.prototype = {
init:function(){
alert(11111);
}
};

其实这种写法,也能够将多个静态方法封装起来,当成一个json对象,挂载到prototype里。

然后在创建对象的时候,就可以直接利用this来调用了。

javascript 面向对象编程小记的更多相关文章

  1. JavaScript面向对象编程学习笔记

    1  Javascript 面向对象编程 所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量.对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例 ...

  2. 快速学习JavaScript面向对象编程

    到处都是属性.方法,代码极其难懂,天哪,我的程序员,你究竟在做什么?仔细看看这篇指南,让我们一起写出优雅的面向对象的JavaScript代码吧! 作为一个开发者,能否写出优雅的代码对于你的职业生涯至关 ...

  3. 深入理解Javascript面向对象编程

    深入理解Javascript面向对象编程 阅读目录 一:理解构造函数原型(prototype)机制 二:理解原型域链的概念 三:理解原型继承机制 四:理解使用类继承(继承的更好的方案) 五:建议使用封 ...

  4. 【转】Javascript 面向对象编程(一):封装

    原文链接:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html Javascript ...

  5. Javascript 面向对象编程(一):封装 by 阮一峰

    <Javascript高级程序设计(第二版)>(Professional JavaScript for Web Developers, 2nd Edition) 它们都是非常优秀的Java ...

  6. 转:javascript面向对象编程

    作者: 阮一峰 日期: 2010年5月17日 学习Javascript,最难的地方是什么? 我觉得,Object(对象)最难.因为Javascript的Object模型很独特,和其他语言都不一样,初学 ...

  7. 探讨javascript面向对象编程

    (个人blog迁移文章.) 前言: 下面将探讨javascript面向对象编程的知识. 请不要刻意把javascript想成面向对象编程是理所当然的. javascript里面,对象思想不可少,但是不 ...

  8. JavaScript面向对象编程(一)原型与继承

    原型(prototype) JavaScript是通过原型(prototype)进行对象之间的继承.当一个对象A继承自另外一个对象B后,A就拥有了B中定义的属性,而B就成为了A的原型.JavaScri ...

  9. JavaScript面向对象编程(二)构造函数和类

    new关键字和构造函数 在文章JavaScript面向对象编程(一)原型与继承中讨论啦JavaScript中原型的概念,并且提到了new关键字和构造函数.利用new关键字构造对象的实例代码如下: // ...

随机推荐

  1. hiho #1361 Playfair密码表

    题目1 : Playfair密码表 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho经常用Playfair密码表加密自己的代码. 密码表是按以下步骤生成的. ...

  2. OpenCV进阶之路:神经网络识别车牌字符

    1. 关于OpenCV进阶之路 前段时间写过一些关于OpenCV基础知识方面的系列文章,主要内容是面向OpenCV初学者,介绍OpenCV中一些常用的函数的接口和调用方法,相关的内容在OpenCV的手 ...

  3. Kali Linux渗透基础知识整理(二)漏洞扫描

    Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ...

  4. Python进程、线程

    Lock & RLock :用来确保多线程多共享资源的访问. Semaphore : 用来确保一定资源多线程访问时的上限,例如资源池. Event : 是最简单的线程间通信的方式,一个线程可以 ...

  5. 4.7---最近公共祖先(CC150)

    import java.util.*; public class LCA { public static int getLCA(int a, int b){ if(a < 1 || b < ...

  6. 【Networkk】一篇文章完全搞清楚 scoket read/write 返回码、阻塞与非阻塞、异常处理 等让你头疼已久的问题

    浅谈TCP/IP网络编程中socket的行为   我认为,想要熟练掌握Linux下的TCP/IP网络编程,至少有三个层面的知识需要熟悉: 1. TCP/IP协议(如连接的建立和终止.重传和确认.滑动窗 ...

  7. linux pep8 检查工具

    感谢dongweiming大神.

  8. 【leetcode】Minimum Path Sum

    Minimum Path Sum Given a m x n grid filled with non-negative numbers, find a path from top left to b ...

  9. ansible操作远程服务器报Error: ansible requires the stdlib json or simplejson module, neither was found!

    通过ansible执行远程命令时报如下异常: Error: ansible requires the stdlib json or simplejson module, neither was fou ...

  10. MySQL数据故障时备份与恢复

    1.ib_logfile0和ib_logfile1是mysql用来存储操作执行的日志文件,用于事务暂存和回滚.当复制ibdata1数据文件到新的mysql中时,如果没有拷贝这两个日志文件,则会出现启动 ...