js设计模式1 创建对象

创建一个新的对象有三种方式

var obj1 = {};
alert(obj1);
var obj2 = Object.create(null);
alert(typeof(obj2));//很奇怪这里如果直接alert会报错
var obj3 = new Object();
alert(obj3);
给对象赋值有两种方式:
obj1.name="hutao";
//alert(obj1.name);
obj1["age"]=19;
//alert(obj1.age);
js有类似继承的现象:
var obj1 = {};
obj1.name="hutao";
obj1["age"]=19;

var child = Object.create(obj1);
//alert(child.age);//19
obj1.age = 20;
//alert(child.age);//20
child.name = "hehe";
alert(obj1.name);//hutao
从这个代码可以看出 改变父类会影响到子类,但反过来不会


另外构造器:

function Car(name,year,miles){
		this.name = name;
		this.year = year;
		this.miles = miles;
		var owner = "hehe"
	}
	Car.prototype.run = function(x){
		this.miles = this.miles+x;
		alert(this.miles);
	}
	var bwm = new Car("mybwm",1,12);
	alert(bwm.owner);//undefined
	alert(bwm.year);//1
	bwm.run(4);

在构造器内的var变量外面访问不到 要写成this

你可能感兴趣的:(js设计模式1 创建对象)