遇到一个Javascript的问题,代码如下:

2025-05-06 06:08:28
推荐回答(3个)
回答1:

要清楚这个问题,你首先要弄懂这里的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类的外部调用

===
可能我的表述不是很清晰,请见谅

回答2:

this这里指向person,this.changeName = changeName 意思是给这个对象添加了一个changeName属性,属性为changeName方法







回答3:

改成这样你就明白了

this.changeName = function(name){
    this.lastname=name;
}