当前位置: 代码迷 >> Web前端 >> call总结
  详细解决方案

call总结

热度:123   发布时间:2012-10-25 10:58:57.0
call小结
	var Person1=  {
		name:"tom",
		say:function(){
			alert("my name is "+this.name);
		}
	}
	var Person2= {
		name:"cat",
		say:function(){
			alert("我是 "+this.name);
		}
	}
	Person1.say();//my name is tom
	Person1.say.call(Person2);//my name is cat
	var empty ={};
	Person1.say.call(empty);//my name is undefined

	/*call说明:对象1.方法A.call(对象2)的作用是,让对象2替代本身对象1,如果对象1涉及的属性对象2不存在,则视为undeifend*/


     

<input type="text" id="myText"   value="将文本框作为对象">  
<script>   
    function Obj(){this.value="Obj变量";}   
    var value="windows 全局 变量";   
    var Fun1={
		//全局的this为window
		value:"内部方法全局变量", 
		test:function(msg){
			alert(msg+":"+this.value);
		}
	}   
  
	
    Fun1.test("全局变量");   //内部方法全局变量
    Fun1.test.call(window,"将window作为对象");  //windows 全局 变量  
    Fun1.test.call(document.getElementById('myText'),"将文本框作为对象");  //input text     
    Fun1.test.call(new Obj(),"将方法作为对象");   //Obj变量
</script>


  相关解决方案