直接上代码
方法一:
var person=new Object(); //创建了一个对象. person.name="tom"; //使用person对象对调用name属性,它的值为tom console.log(person.name); //显示name属性值 person.say=function(){ //对person对象添加了一个say函数。 console.log("person say"); }; person.say();
方法二:
var person={ name:"tom",
age:29, say:function(){ alert("hello person"); } }; //创建了一个对象 person.age=10;//为对象重新赋值 console.log(person.age);
方法三:
//js中定义类是使用function。 var Person = function(name,age){ //我们在定义一个类。 相当于它具有一个有参数的构造函数。 this.name =name;//类的属性 this.age=age; this.say = function(){ //类的方法. console.log("say good"); } } var p = new Person("fox",29); //定义Person类的一个对象p alert(p.name); //调用name属性
方法四:工厂模式
function createPerson(name,age,job){ var o = {}; o.name = name; o.age = age; o.job = job; o.sayName = function(){ console.log(this.name); }; return o; } var tanya = createPerson("tanya","30","female"); var ansel = createPerson("ansel","30","male"); tanya.sayName(); ansel.sayName();
方法五:
var person={ name:'tony', $age:null, get age(){ if(this.$age==null){ return new Date().getFullYear()-1986; }else{ return this.$age; } }, set age(val){ if(!isNaN(val)&&val>0&&val<100){ this.$age=val; }else{ throw new Error('Incorrect val ='+val) } } } var one =Object.create(person); one.father="li"; one.mother="wang";
//输出one对象自己的属性,这里涉及到原型链 for(p in one){ if(one.hasOwnProperty(p)){ console.log(one[p]);//li,wang } }