JS学习随记_day03

page 185:
//注意以下区别:
function counter(){
    var n = 0;
    return{
      count: function(){ return n++; },
      reset: function(){ n = 0; }
    };
}
var c = counter();  // => Object { count=function(), reset=function()}  //c是function的返回值,返回的是一个对象
c.count ,,, c.reset
var c = function counter(){} // 那c就是function

//下面例子知道setter怎么用了
function counter(n){
    return{
        get count(){ return n++; }
        set count(m){
        if(m>=n) n=m;
        else throw Error("count can only be set to a larger value");
    };
}
var c = counter(1000);
c.count // => 1000
c.count // => 1001
c.count = 2000
c.count // => 2000
page 187:
//关于闭包
function co nstfuncs(){
    var funcs = [];
    for(var i=0; i<10; i++)
        funcs = function(){ return i; };
    return funcs;
}
var funcs = constfuncs();
funcs[5]()   //funcs在同一个函数调用中定义的,因此它们是共享变量i的
                   //所以这的值是: 10
page 195:
//函数式的编程风格,个人觉得是个非常非常非常好的编程习惯

//求标准差
var sum = function(x, y){ return x+y; };
var square = function(x){ return x*x; };
 
var data = [1,1,3,5,5];
var mean = data.reduce(sum)/data.length;
var deviations = data.map(function(x){ return x-mean; });
var stddev = Math.sqrt(deviations.map(square).reduce(sum)/(data.length-1));
stddev  // => 2
8.8.2 高阶函数
8.8.3 不完全函数
8.8.4 记忆
这三节未看,但是显然这一部分很重要!!!!

page 214:
//返回对象的类
function classof(o){
    return Object.prototype.toString.call(o).slice(8, -1);
}
page 230:
9.7至本章结束未看(头昏脑胀以至于看不进去,日后需回阅)

你可能感兴趣的:(JS学习随记_day03)