javascript - 这行Js代码到底是做什么的呢?

标签 javascript object methods web properties

我正在学习 javascript 中的对象,我正在使用一个函数来构造一个对象并向其添加一个方法。很明显有一个方法可以改变对象的firstName,但是这一行是做什么的 this.changeName=changeName;
到底是怎么做的?如果我删除它或将 ChangeName 函数名称更改为其他名称,则会发生错误并且不显示任何内容。而且删除这行代码也会导致错误,所以看起来这对于代码的运行至关重要,但我真的不知道它是做什么的。

<script>

function person(firstName, lastName, age){
    this.firstName=firstName;
    this.lastName=lastName;
    this.age=age;
    this.changeName=changeName;

    function changeName(name){
        this.firstName=name;
    }
}
me = new person("Hazem", "Khadash", 18);
me.changeName("Bashar");
document.write(me.firstName);

根据我对代码的理解,me 被创建,changeMe() 函数作为方法被调用,然后 person.lastName 在屏幕上呈现。

谢谢。

最佳答案

您正在将 changeName 作为 person 的一部分进行访问。将其视为公开 changeName

没有它,您就无法执行 me.changeName,因为 me.changeName 不再存在于 person 范围之外。

关于javascript - 这行Js代码到底是做什么的呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18497231/

相关文章:

javascript - 展开/折叠表格行 Javascript 工作错误

javascript - 如何将 AngularJS 事件重新广播到子范围?

javascript - 如何显示下一张幻灯片和/或上一张幻灯片的某些像素?

javascript - 使用变量修改日期选择器中的 maxDate 和 minDate

swift - Swift 中的元组与对象

javascript - 如何判断对象的所有值是否存在于另一个对象中

javascript - 使用 ng-click 更改按钮中的文本

java - 如何给一个类一个克隆方法?克隆方法返回什么?

java - 使用 .equals() 和 == 运算符比较两个对象

java - Ruby setter 方法语法 method=(value) - 与 Java 的比较