javascript面向对象编程 笔记1-封装

构造函数Prototype模式

//		pototype 模式
		function DataItem(name, color) {    
			this.name = name;    
			this.color = color;  
		} 
		DataItem.prototype.type = "猫和老鼠";
		DataItem.prototype.ItemList = function(obj) {
				return obj+"在睡觉"; 
			}  
		var item1 = new DataItem("蓝猫", "蓝色");
		var item2 = new DataItem("杰瑞", "棕色");
		console.log(item1.ItemList("小猫"))
//		这时所有实例的type属性和  ItemList() 方法,其实都是同一个内存地址,指向prototype对象,因此就提高了运行效率。
//      验证是否同一个内存   alert(item1.ItemList == item2.ItemList); //true
//      验证本地属性还是对象属性  hasOwnProperty() 
		console.log(item1.hasOwnProperty('name'))//true
		console.log(item1.hasOwnProperty('type'))//false
//      验证对象原型 isPrototypeOf()  
		console.log(DataItem.prototype.isPrototypeOf(item1))//true
		
//		in 某个实例是否含有某个属性,不管是不是本地属性  prop in object  es6
		console.log(('type' in item1))//true

 

你可能感兴趣的:(常用笔记,javascript,prototype)