猿问

call和直接调用函数有什么区别?

function displayInfo(){
			var  output="";
			if(typeof this.name=="string"){
				output+="Name:"+this.name+"\n";
			}
			if(typeof this.age=="number"){
				output+="Age:"+this.age+"\n";
			}
			alert(output);
		}
		var info1={
			name:"Jim",
			age:29
		}
		var o=new Object();
		o.m=displayInfo;
		o.m.call(info1);//能找到Jim和29
		displayInfo(info1);//为空值

为什么使用call时,this起作用,

直接调用函数this没有用呢,什么原因?

好学的Lv
浏览 1660回答 1
1回答

Joy_Sang

call,改变了this的指向,此时this指向info1对象,而displayInfo(info1)中的this指向window对象所以Name:The Window
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答