要清楚这个问题,你首先要弄懂这里的this表示什么。这段代码看来,person首先是一个类的概念,this则表示这个类所生成的对象本体。this.changeName 则表示对象的方法
再来看下 function changeName,这个function函数,本身是person所生成对象的私有方法,外部是调用不到的,如果希望外部能够访问这个函数,就需要作一次 this.changeName = changeName;的赋值了。
==========
根据这个例子,举例说明:
var s1 = new person("xxx","xxx", 12, "xxx"); //利用person生成一个对象
changeName("xxx"); //但是如果在脚本代码里这样直接去调用,是会出错的,因为changeName属于person类的私有方法,一旦于person以外,是无法直接调用的
s1.changeName("xxX"); //这样调用,是可以的,就因为刚才person内部作了一次 this.changeName = changeName;的赋值,将内部的私有方法,通过这样的方式给予person类的外部调用
===
可能我的表述不是很清晰,请见谅
this这里指向person,this.changeName = changeName 意思是给这个对象添加了一个changeName属性,属性为changeName方法
改成这样你就明白了
this.changeName = function(name){
this.lastname=name;
}