多叉树的复习

March 03, 2014

多叉树复习

「多叉树」就是分 N 岔的树,每個节点可以有零个、一个、两个、……、 N 个小孩。 类似:

此处输入图片的描述

本文主要内容为: 1. 文件读入树状数据(json格式),构造多叉树 2. 多叉树的深度遍历 3. 多叉树的层次遍历

read more

复习JavaScript6

February 23, 2014

原型和原型链 复习

原型

function Person(){
    }

Person.prototype.name = 'Jim';
Person.prototype.sayName = function(){
    comsole.log(this.name);
};

var person1 = new Person();        
var person2 = new Person();          

下图说明了Person构造函数、Person原型以及person两个实例的关系。
要说明的是当构造函数创建一个新实例后,生成的实例会包含一个[[prototype]]指针,指向构造函数的原型对象。在chrome、Safari、Firefox中以proto形式存在;在其他实现中脚本是不可见的。

read more

为jekyll添加plantUML

February 20, 2014

jekyll on github Pages 添加plantuml 经过昨天的努力终于把plantuml装好了,效果如下: 具体过程稍后再补 read more

复习JavaScript5

February 18, 2014

立即调用的函数表达式 复习

函数的执行上下文

在JavaScript里,任何function在执行的时候都会创建一个执行上下文,因为为function声明的变量和声明的function有可能只在该function内部。

// 由于该function里返回了另外一个function,其中这个function可以访问自由变量i
// 所有说,这个内部的function实际上是有权限可以调用内部的对象。

function makeCounter() {
    // 只能在makeCounter内部访问i
    var i = 0;

    return function () {
        console.log(++i);
    };
}

// 注意,counter和counter2是不同的实例,分别有自己范围内的i。

var counter = makeCounter();
counter(); // logs: 1
counter(); // logs: 2

var counter2 = makeCounter();
counter2(); // logs: 1
counter2(); // logs: 2

alert(i); // 引用错误:i没有defind(因为i是存在于makeCounter内部。
read more

复习JavaScript 4

February 12, 2014

全面解析Module模式 复习


基本用法

var Calculator = function (eq) {
    //这里可以声明私有成员

    var eqCtl = document.getElementById(eq);

    return {
        // 暴露公开的成员
        add: function (x, y) {
            var val = x + y;
            eqCtl.innerHTML = val;
        }
    };
};

每次调用的时候new一下,不过这样每个实例都独立存在于内存中

var calculator = new Calculator('eq');
calculator.add(2, 2);
read more