javas
1.构造函数方式,全部属性及对象的方法都放在构造方法里面定义
优点:动态的传递参数
缺点:每创建一个对象就会创建相同的方法函数对象,占用大量内存
$(document).ready(function() { var user=new User1("jack","123456"); var flag=user.login("jack","123456"); alert(flag); }); //利用构造方法生成对象 function User1(name,password){ this.name=name; this.password=password; this.login=function(name,password){ if(this.name == name && this.password == password){ return true; }else{ return false; } }2.动态原型方式:加一个判断属性,来判断该对象是否已经被创建过,如果被创建过,则方法就不在构建
优点:将原型函数写在对象定义里面
缺点:不支持继承
$(document).ready(function() { var user=new User1("jack","123456"); var user1=new User1("jack","123456"); }); //测试单例 function User1(name,password){ this.name=name; this.password=password; if(typeof User1._initialized=="undefined"){ alert("是否继续生成"); User1.login=function(name,password){ if(this.name == name && this.password == password){ return true; }else{ return false; } } } User1._initialized = true; }
}3、JSON方式/对象直接量(强烈推荐用这种。)
格式: var 对象名 = {
变量1: 变量1的值, 变量1: 变量1的值, ……, 函数1: function() { 函数体 }, 函数2:function() { 函数体 }//Note:最后的逗号要去除为了和IE兼容。 }; //示例
var data={ name:"jack", age:"26", eat:function(){ alert("i am eat"); }, sleep:function(){ alert("i am sleep"); } };