摘要: prototype是js实现代码共享,继承的利器.1 共享 1 var Person = function(name){ 2 this.name = name; 3 } 4 Person.prototype.pName = function(){ 5 alert(this.name); 6 } 7 8 var p1 = new Person(); 9 var p2 = new Person();10 alert(p1.pName === p2.pName); //true 细节: 1 new Person() 相当于 var obj = {}; //创建... 阅读全文
posted @ 2014-02-07 22:50 _SharpCode 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 必要: JS MVC中, 模块间的数据不能相互影响, 只有这样才能有效的保证模块的复用性.预期效果: angularJs很好的展现了这一点,它的效果类似于JS词法作用域: 在一个函数中,内嵌函数可以访问外部函数的变量,而外部函数不能访问内部函数的变量思路: 1 给每个controller绑定一个scope对象,scope存该模块的属性 2 如果controller有父controller,则为scope对象增加一个$parent属性指向父controller的scope对象 3 增加一个代理函数, 把函数和方法绑定作用域代码: 父作用域: ... 阅读全文
posted @ 2013-10-27 21:52 _SharpCode 阅读(1011) 评论(0) 推荐(0) 编辑
摘要: 简单模拟了一下angularjs的DI.注入器,简单思路: 1 Injector容器供用户注入 2 监听onload事件,找到controller,然后执行对应方法var Injector = (function(){ window.onload = compile; function compile(){ $("[controller]").each(function(ctrl){ var methodName = $(this).attr("controller"); var method ... 阅读全文
posted @ 2013-09-09 19:29 _SharpCode 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 建立dll1 初建win32控制台空项目2 头文件 add.hint __declspec(dllexport)add(int,int);//入口函数加 __declspec(dllexport) add.c#include "add.h"int __declspec(dllexport)add(int x,int y){ return x+y; }3 编译导出dll和头文件调用dll#include<stdio.h>#include<Windows.h>#include "add.h"typedef int (*PF)(int, 阅读全文
posted @ 2013-03-05 10:38 _SharpCode 阅读(254) 评论(0) 推荐(0) 编辑
摘要: ---恢复内容开始---int scanf( const char *format,<地址表>)scanf()函数接收输入数据时,遇以下情况结束一个数据的输入:① 遇空格、“回车”、“跳格”键。② 遇宽度结束。③ 遇非法输入。scanf 只从缓冲区拿数据缓冲区数据由键盘输入填充例子:int main(){ int a; //这里输入:1 2,缓冲区保留两个值为1,2 //缓冲区值1 -> 内存地址a , 缓冲区值2保留在缓冲区 scanf("%d",&a); printf("%d\n",a); //a=1 //直接从缓冲区拿到值 阅读全文
posted @ 2013-03-03 21:16 _SharpCode 阅读(155) 评论(0) 推荐(0) 编辑
摘要: Javascript数据类型分为 : 原始类型和对象类型(两个特殊原始值:null和undefined) 原始类型 : 数字,字符串,布尔值 对象类型 : 对象是属性的集合,每个属性都有"名/值"对构成 Tips : 1 数字 : 两个特殊值 Infinity无穷大,NaN非数字(0/0) 2 文本 : UTF-16编码,不可变 3 布尔值 : 任意js值可以转换为布尔值,下面转为false undefined null 0 -0 NaN ""//空字符串 全局对象 全局属性 : undefined , Infinity和NaN 全局函数 : isNaN 阅读全文
posted @ 2012-11-16 23:03 _SharpCode 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 这两天翻了翻操作系统,记下几点新认识1 以数据为核心看计算机结构 cpu:处理数据 内存:缓存数据,便宜cpu存取数据 硬盘(代表I/O):持久化数据(表现数据) 关系: 1.cpu和内存:访问速度快,cpu通过系统总线能直接存取内存中的数据 2. cpu和硬盘:不能直接访问,通过DMA来处理,整个流程如下: 1、cpu发出读取硬盘数据指令,cpu将系统总线控制权限交给DMA控制器; 2、DMA将数据从硬盘读入内存; 3、cpu从DMA接管总线控制权; 4、cpu向内存发出读取数据命令; 5、cpu对数据进行运算处理,同时和内存进行必要的数据交换; 6、运行结束后,如果... 阅读全文
posted @ 2012-06-01 11:10 _SharpCode 阅读(1056) 评论(0) 推荐(0) 编辑
摘要: 昨天看了看注解,于是简单模拟一下hibernate整个包:先来看注解Table.java,主要是把实体类和表名联系起来package annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;//自定义的Annotation@Target(ElementType.TYPE)@Retention(RetentionPoli 阅读全文
posted @ 2012-05-21 12:57 _SharpCode 阅读(478) 评论(0) 推荐(1) 编辑
摘要: 由于java的动态绑定只能处理一个类型,所以如果要执行的操作包含不止一个类型未知的对象时,就需要使用多路分发.其中多路分发使用了多态机制,所以只能发生在方法调用时.以石头,剪刀,布的例子说明 1 使用enum分发 定义返回结果: package enumeration;public enum Outcome { WIN,LOSE,DRAW} 使用构造器来初始化每个enum实例 package enumeration;import static enumeration.Outcome.*;public enum RoShamBo { //初始化 PAPER(DRAW,... 阅读全文
posted @ 2012-05-20 11:20 _SharpCode 阅读(988) 评论(0) 推荐(0) 编辑
摘要: 1 enum的责任链利用enum可以为枚举实例添加方法的特性,可以构造简单的责任链package enumeration;public class StringHandler { enum handler { Sensitive { @Override String hand(String msg) { return msg.replace("敏感", "*"); } }, HTML { @Override ... 阅读全文
posted @ 2012-05-19 22:27 _SharpCode 阅读(262) 评论(0) 推荐(1) 编辑