Fork me on GitHub

匿名函数

拉姆达(lambda)函数

/*
ECMA-262 对象定义:无序属性的集合,散列表
构造函数始终要已一个大写字母开头,非构造小写开头
*/
var p  = new Object();
p.name = "cj";
p.say  = function(){this.name};
//缺点:使用同一个接口创建很对象,大量的垃圾重复代码

//工厂模式   问题 没有解决对象识别(怎么知道一个对象的类型)
function createP(name,age){
    var o = new Object();
    o.name =name;
    o.age = age;
    o.say =function(){this.name};
    return o;
}

//构造函数模式
function p(name,age){
    this.name =name;
    this.age =age;
    this.say =function(){this.name};
}
/*与工厂的区别,没有显示创建对象 直接将属性和方法赋给了this对象 没有return
使用NEW
1 创建一个新对象
2 将构造函数的作用域赋给新的对象(this就指向了这个新的对象)
3 执行构造函数中的代码(为这个新对象添加属性)
4 返回新对象
*/


//构造函数,函数的唯一区别, 调用它们的方式不同
//每个函数都有一个prototype属性,这个属性也是一个对象,对象的一个副本
function P(){}
P.prototype.name ="";
p.prototype.say=function(){this.name};

//创建函数,默认下prototype会自动获得一个constructor属性 包含指向PRO属性的所有函数指针



posted on 2011-09-05 17:08  【艾伦】  阅读(357)  评论(0编辑  收藏  举报