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**.
1 回答
慕桂英546537
TA贡献1848条经验 获得超10个赞
刚才在另外一个问题中不是已经跟你详细解释过了吗?看来你并没有看懂啊 ~ ~。
回头去仔细看看再说吧。
再给你一个提示
// 在你的例子基础上,直接调用原型上的方法,这个东西,就跟你想的差不多了 - -! Person.prototype.getName(); // 通过new出来的实例调用该方法 var person = new Person("Nxxxxxx"); person.getName();
结合这2个差异,和我之前的回答,再思考一下吧。
添加回答
举报
0/150
提交
取消