一、使⽤原始的⽅式创建对象
//定义
var myObject = new Object();
myObject.name = “张三丰”; //定义属性
myObject.age = 20;
myObject.say = function(){ //定义⽅法
console.log("我的名字叫:"+this.name+"; 年龄:"+this.age);
}
//使⽤
console.log(myObject.name); //对象调⽤属性
console.log(myObject.age);
myObject.say(); //对象调⽤⽅法
二、使⽤⼯⼚模式创建对象
function createObject(name,age) {
var obj = new Object();//创建对象
//添加属性
obj.name = name;
obj.age = age;
//添加⽅法
obj.say = function () {
console.log("我的名字叫:" + this.name + "年龄:" + this.age);
};
return obj;
}
//创建⼈的对象
var per1 = createObject("王五",20);
per1.say();
//创建⼀个⼈的对象
var per2 = createObject("赵六",30);
per2.say();
三、使⽤⾃定义构造函数创建对象
//使⽤构造⽅式创建⼀个对象
function Stu(name,age){
this.name = name;
this.age = age;
this.getinfo = function(){
return this.name+":"+this.age;
};
}
//测试
var s = new Stu("zhangsan",22);
document.write(s.getinfo());
四、直接创建⾃定义对象
//格式:var 对象名 = {属性名1:属性值,属性名2:属性值2,…….}
var obj={};
obj.name="⼩⽩";
obj.say=function () {
console.log("我叫: "+this.name);
};
obj.say();
var obj2={
name:"⼩明",
age:20,
say:function () {
console.log("我叫: "+this.name+"; 年龄: "+this.age);
},
};
obj2.say();
五、测试数组类型
1、验证是数组类型,typeof() //global对象的其中⼀个⽅法,typeof()
var arr =[10,20,30];
console.log(typeof(arr)); //会输出是Object对象的结果,并不能让我们知道他是数组
2、对象.constructor; //查看当前对象的构造函数是谁
console.log(arr.constructor==Array); //会得到布尔类型的结果,true就是数组,false就不是数组
3、变量 instanceof 类型的名字----->做亲子鉴定(使用上三中举例)
console.log(s instanceof Stu); //判断变量s是不是来自对象Stu,得到布尔类型,true就是这种类型,false不是这种类型