函数

vim 支持php manual

俺的主要编程语言为php,故找了一个支持vim查看php函数手册的插件,以下是我的安装过程。其实git上有,我就是做了个翻译并在本机上测试。机器环境ubuntu14 使用说明: 1.将当前cursor定位于当前函数 按住 shift+k即可打开函数说明,不过为英文文档,相信对于程序员这点英文应该没有难度。 cd /tmp git clone https://github.

【译】我最喜欢的 JavaScript 设计模式

原文链接:My Favorite JavaScript Design Pattern译文原链:【译】我最喜欢的 JavaScript 设计模式我最喜欢的 JavaScript 设计模式我觉得聊一下我爱用的 JavaScript 设计模式应该很有意思。我是一步一步才定下来的,经过一段时间从各种来源吸收和适应直到达到一个能提供我所需的灵活性的模式。让我给你看看概览,然后再来看它

初步了解this

在面向对象编程中,this指针的指向我经常弄不清楚,看了几篇博客之后,乘有了一点点了解,赶快做笔记记录下来。 this的指向取决于调用的模式,而在js中有4中调用模式:方法调用模式,函数调用模式,构造函数调用模式,apply调用模式 方法调用模式 当一个函数是作为一个对象的属性被调用时,this会指向该属性所属的对象。 var name = 'window'; var pe

理解原型链

JavaScript之原型链参考:http://zhangjiahao8961.iteye.com/blog/2070650原型链概念原型链是一种机制,指的是JavaScript每个对象包括原型对象都有一个内置的[[proto]]属性指向创建它的函数对象的原型对象,即prototype属性。作用原型链的存在,主要是为了实现对象的继承。理解要理解原型链,需要从几个概念入手。1

[PHP源码阅读]arra_pop和arra_shift函数

上篇文章介绍了PHP添加元素到数组的函数,那么当然有从数组中删除元素。array_pop和array_shift只从数组的头或尾删除一个元素。经过阅读源码,发现这两个函数的实现都是调用了同一个函数--_phpi_pop来实现从数组中删除一个数组元素的功能。因此解读时将这两个函数一并讲了。我在github有对PHP源码更详细的注解。感兴趣的可以围观一下,给个star。PHP5

[PHP源码阅读]arra_pop和arra_shift函数

上篇文章介绍了PHP添加元素到数组的函数,那么当然有从数组中删除元素。array_pop和array_shift只从数组的头或尾删除一个元素。经过阅读源码,发现这两个函数的实现都是调用了同一个函数--_phpi_pop来实现从数组中删除一个数组元素的功能。因此解读时将这两个函数一并讲了。我在github有对PHP源码更详细的注解。感兴趣的可以围观一下,给个star。PHP5

Clojure 的身份与状态思想

基本概念Clojure 语言中没有简单的变量。但 Clojure 却声称最擅长管理状态,为什么?靠的是仔细设计的状态类型们,其中最引人注目和最常用的是 Atom 和 Ref(ClojureScript 中不可用)。粗看起来,这两个东西区别很大:生成函数不同,操作函数也不同:类型生成函数操作函数Atomatomreset!, swap!Refrefref-set, alter

续延传递

续延传递(Continuation Passing Style, CPS)是一种编程手法,不要相信我能够将它讲清楚——在敲这些字的时候,我刚刚开始看《The Little Schemer》的第八章的 multirember&co 这个函数的定义,而且是因为看不懂,所以才写此文。阶乘下面是阶乘函数的定义:(define (factorial n)(cond ((= n 1)

用ES6 Generator替代回调函数

http://www.html-js.com/article/A-day-to-learn-JavaScript-to-replace-the-callback-function-with-ES6-Generator原文链接 上面的这篇文章让我了解到了,co的实现原理,提供了angular同步的思路。解释得很清楚、很明白。 关键字:generator, angular, e

再议javascript闭包

在javascript中闭包已经成了一个很神秘,让人高山仰止的存在。 今天有对闭包进行了一番搜索,有了一种明悟:闭包就相当于黑盒的钥匙。当你手握闭包,黑盒就能为你所用。 为什么这么说呢?这个想法来自于这篇文章: function foo(x) { var tmp = 3; return function (y) {alert(x + y + tmp);x.memb = x.