js创建对象的三种方式

1.调用系统的构造函数创建对象

 var 变量名=new Object(); Object是系统的构造函数

(1)案例:我叫小明,男,今年25岁,喜欢前端编程

 

var xiaoMingObj=new Object();//实例化对象
xiaoMingObj.name="小明";
xiaoMingObj.sex="男";
xiaoMingObj.age=25;//定义属性
xiaoMingObj.bianCheng=function(){
  console.log("热爱前端编程");
}//定义方法
//调用
console.log(xiaoMingObj.name);//小明
console.log(xiaoMingObj.sex);//男
console.log(xiaoMingObj.age);//25岁
xiaoMingObj.biancheng();//热爱前端编程
console.log(xiaoMingObj instanceof Object);//true


(2)工厂模式创建对象,一次性创建多个对象,把创建对象的代码封装在一个函数中

function createObj(name,sex,age){
var personObj=new Object();//实例化对象
personObj.name=name;
personObj.sex=sex;
personObj.age=age;//定义属性
personObj.say=function(){
  console.log("大家好!我叫"+name+"今年"+age+"热爱前端编程");
}//定义方法
return personObj;//切记一定得返回此对象!
}
var person1=createObject("小明","男","25岁");
person1.say();

2.自定义构造函数创建对象(很重要,后面原型继承都用它)

它与函数的区别就是首字母是否大写,大写为自定义构造函数

语法是先定义构造函数再创键对象

案例:定义一个人的对象

 

function Person(name,age){
this.name=name;
this.age=age;
this.sayHi=function(){
console.log("我叫:"+this.name+",今年:"+this.age);
};
}//自定构造函数

var obj=new Person("小明","10岁");//创建实例化对象
//这里做了四件事:(1)在内存中申请一块空的空间,存储创建的新对象(2)把this设置为当前对象(3)设置对象的属性和方法的值(4)把this这个对象返回
console.log(obj.name);
console.log(obj.age);
obj.sayHi();

var obj1=new Person("小红","12岁");//创建实例化对象
//这里做了四件事:(1)在内存中申请一块空的空间,存储创建的新对象(2)把this设置为当前对象(3)设置对象的属性和方法的值(4)把this这个对象返回
console.log(obj1.name);
console.log(obj1.age);
obj.sayHi();

console.log(obj instanceof Person);//true;不再是Object

3.字面量的方式创建对象

 缺陷:一次性的对象

var obj={

name:"小明",

age:20,

sayHi:function(){

console.log("我是:"+this.name);

},eat:function(){

console.log("吃东西了!");

}

}
obj.sayHi();//对象调用属性方法的第一种写法
obj["eat"]();//对象调用属性方法的第二种写法
console.log(obj["name"]);

4.补充:遍历对象

不能通过for循环遍历(因为无序),但可以通过for-in循环

for(var key in json){//key存储对象中所有的属性名
console.log(key);//json对象中的属性名字
console.log(json[key]);//注意:不能用json.key和json["key"],否者结果为undefined,这两种写法则是访问对象中的key属性了,对象中没有key属性;
}

总结了一些皮毛知识点,若有不足希望各位大神帮忙指点!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值