关于原型对象中的this指向??

function Person(name){

   this.name=name;

}

Person.prototype.getName=function(){

   return this.name;

}

//调用函数

var person=new Person("Nicholas");

alert(person.getName());//Nicholas


    这个问题是关于**原型对象中的this指向的**?

高程上说,无论什么时候,只要创建了一个新函数,就会根据一组特定的规则为该函数创建一个prototype属性

,这个属性指向函数的原型对象。按照我的理解,Person.prototype将会作为一个指向原型对象的指针,

而getName()方法将会作为原型对象的的方法;而this的判定是根据具体的执行环境给出,我认为:

 Person.prototype.getName=function(){

   return this.name;

}

其中的this,应该指向该原型对象,而在原型对象里,并没有name属性,所以我认为调用该函数:

   var perosn=new Person("Nicholas");

   alert(person.getName());

后应该得不到name的值;**可事实是,得到了Nicholas**.

 


qq_花开花谢_0
浏览 1529回答 1
1回答

慕桂英546537

刚才在另外一个问题中不是已经跟你详细解释过了吗?看来你并没有看懂啊 ~ ~。回头去仔细看看再说吧。再给你一个提示// 在你的例子基础上,直接调用原型上的方法,这个东西,就跟你想的差不多了 - -! Person.prototype.getName(); // 通过new出来的实例调用该方法 var person = new Person("Nxxxxxx"); person.getName();结合这2个差异,和我之前的回答,再思考一下吧。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript