`

JS面向对象编程总结一

    博客分类:
  • JS
阅读更多
<html>
        <head>
	<script type="text/javascript">
	      function test1(){
			
				   var emptyObject1 = {};           //创建空对象   
					 var emptyObject2 = new Object(); //创建空对象   
           var person = { "name":"sdcyst",   
                          "age":18,   
          								"sex":"male"};     //创建一个包含初始值的对象person   
					 alert(person.name);              //sdcyst   
					 alert(person["age"]);            //18  

        }
        
        function test2()
        {
        	 var person={};
        	 person.name="sdcyst";
        	 person["age"]=18;
        	 alert(person.name + "__" + person.age);//sdcyst_18
        	 //在构建一个对象时描述性的名字可以不用引号来标注
        	 var _person={name:"balala","age":23};
        	 alert(_person["name"]+"__"+_person.age);//balala_23
        	 alert(_person[name]);//undefined  ,注意:通过[]来引用,属性要加上引号
        	 
        }
        
        function test3()
        {
        	  //一般来说"[]"操作符获取对象属性的功能更强大一些,可以在[]中放入一些表达式来取属性的值,

        	 var name={"name1":"NAME1","name2":"NAME2","name3":"NAME3","name4":"NAME4"};
        	 var namestring="";
        	 for(var props in name){
        	 	namestring+=name[props];	
        	 }
        	 
        	 alert(namestring);
        	 
        	  namestring = "";   
					  for(var i=0; i<4; i++) {   
    					namestring += name["name"+(i+1)];   
						}   
					
					alert(namestring);   
        	
        }
        
        
        //delete操作符可以删除对象中的某个属性,判断某个属性是否存在可以使用"in"操作符.
        function test4()
        {
        	
        	var name = {"name1":"NAME1","name2":"NAME2","name3":"NAME3","name4":"NAME4"};   
					var namestring = "";   
					for(var props in name) {  //循环name对象中的属性名字   
					    namestring += name[props];   
					}   
					alert(namestring);  //NAME1NAME2NAME3NAME4   
					  
					delete name.name1;  //删除name1属性   
					delete name["name3"];  //删除name3属性   
					namestring = "";   
					for(var props in name) {  //循环name对象中的属性名字   
					    namestring += name[props];   
					}   
					alert(namestring);  //NAME2NAME4   
					  
					alert("name1" in name); //false   
					alert("name4" in name); //true  
  
        	
        }
        
        
        //对象的constructor属性,每一个javascript对象都有一个constructor属性.这个属性对应了对象初始化时的构造函数(函数也是对象).

        function test5()
        {
        	
        	var date = new Date();   
				  alert(date.constructor);  //Date   
					alert(date.constructor == "Date");  //false   
					alert(date.constructor == Date);  //true  
				}
				
				function test6()
				{
					
					var array1 = [];  //创建空数组   
					var array2 = new Array();  //创建空数组   
					array1 = [1,"s",[3,4],{"name1":"NAME1"}]; //这个数组长度为4,其中第3个元素也为一个数组   
					alert(array1[2][1]);  //4   访问数组中的数组元素   
					alert(array1[3].name1); //NAME1 访问数组中的对象   
					alert(array1[8]);   //undefined   
					array2 = [,,];  //没有数值填入只有逗号,则对应索引处的元素为undefined   
					alert(array2.length); //3   
					alert(array2[1]);     //undefined  
					//我们已经知道,对象的属性值是通过属性的名字(字符串类型)来获取,
					//而数组的元素是通过索引(整数型 0~~2**32-1)来得到值.
					//数组本身也是一个对象,所以对象属性的操作也完全适合于数组.


				}
				
				
				function test7()
				{//数组本身也是一个对象,所以对象属性的操作也完全适合于数组.
					
					var array = new Array("no1","no2");   
					array["po"] = "props1";   
					alert(array.length);   //2   
				//对于数组来说,array[0]同array["0"]效果是一样的(?不确定,测试时如此)   
			  alert(array[0] + "_" + array["1"] + "_" + array["po"]);//no1_no2_props1  

					
				}
				
				
				
				
				
	</script>
         </head>
	<body>
	<input type="button" value="test1" onclick="test1();"/><br/> 
	<input type="button" value="test2" onclick="test2();"/><br/>
	<input type="button" value="test3" onclick="test3();"/><br/>
	<input type="button" value="test4" onclick="test4();"/><br/>
	<input type="button" value="test5" onclick="test5();"/><br/>
  <input type="button" value="test6" onclick="test6();"/><br/>
  <input type="button" value="test7" onclick="test7();"/><br/>
  	       
</body>
</html>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics