`

javascript面向对象

    博客分类:
  • web
阅读更多
//含有初始值的对象
		var obj1 = {"name":"bird","age":22,"sex":"man"};
		//alert(obj1.name+" "+obj1["name"]); //即可以用.也可以用[]来取对象中的属性
		var vals="";
		for(var attr in obj1){               //循环获取对象中的所有值
			vals +=obj1[attr]+"_";
		}
		//alert("obj1 attribte value:"+vals);  //bird_22_man_

		var obj2 = {};        //创建一个空对象
		obj2.name="bird";     //创建了一个对象之后可以随时对它赋予任何的属性
		obj2.age = 18;
		alert("age" in obj2);    //true;in:判断对象是否有某个属性
		delete obj2.age;         //delete:从对象中删除某个属性
		alert("age" in obj2);    //false
		alert(obj2.name);        //bird
	
		var date = new Date();
		alert(obj1.constructor); //constructor构造器

		function print(){        //一个函数也是一个对象
			this.name = "函数执行时指定name";
			alert("hello world");
		}
		alert(print.toString()); //toString 方法打印函数结构体
		print.name="test";
		alert(print.name);
		
		print.prototype.name = "prototype name";
		print.prototype.n = "prototype n";
		var obj3 = new print();  //new 方法对象时会执行方法体
		alert(obj3.name);        //函数执行时指定name
		alert(obj3.n);           //prototype n
		
		//继承
		//用 new 关键字创建对象是执行了下面三个步骤的:

		// 1. 创建一个新的普通对象;
		// 2. 将方法对象的 prototype 属性的所有属性复制到新的普通对象中去。
		// 3. 以新的普通对象作为上下文来执行方法对象。

		var animal = {}; //创建一个空对象
		animal.eat = function eat(){alert("eat!");};
		animal.sleep = function sleep(){alert("sleep!");};
		
		var human = function(){
			this.eat = function(){alert("human eat!");};
		};
		human.prototype = animal; //human方法拥有了animal的说有属性
		human.prototype.run = function(){alert("hunam run!");};
		
		var h_obj = new human();  //创建human方法对象
		h_obj.eat();   //human eat!
		h_obj.sleep(); //sleep!
		h_obj.run();  //hunam run!
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics