javascript - 关于在 JavaScript 中向对象添加方法的澄清?

标签 javascript

在以下函数中,其中有一个名为 newlastname 的方法:

function person(firstname,lastname,age,eyecolor)
{
  this.firstname=firstname;
  this.lastname=lastname;
  this.age=age;
  this.eyecolor=eyecolor;

  this.newlastname=newlastname;
}


function newlastname(new_lastname)
{
  this.lastname=new_lastname;
}

this.newlastname=newlastname; 行中发生了什么?第一个新姓氏指的是什么?我很感激任何提示或建议。

最佳答案

在这行代码中:

this.newlastname=newlastname;

第一个 newlastnameperson 对象的属性。

第二个 newlastname 是对 newlastname() 函数的引用。

所以,当你这样做时:

this.newlastname=newlastname;   

您正在将对该函数的引用存储在 person 对象的属性中。这将允许以下代码工作:

var p = new person("Ted", "Smith", 31, "blonde");
p.newlastname("Bundy");

当您执行p.newlastname("Bundy");时,它将在person对象上查找名为newlastname的属性。当它找到该属性时,它将执行该函数并向其传递“Bundy”并将this设置为特定的person对象。 p>

关于javascript - 关于在 JavaScript 中向对象添加方法的澄清?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9958494/

相关文章:

javascript - 安卓股票浏览器 : How to prevent double tap closing browser

javascript - 在 Button Click 上创建 DIV,输入 DATA 和 IMAGE 像 facebook

javascript - 打开带有发布数据的弹出窗口

javascript - 带有 JavaScript 的 ffmpeg 缩略图

javascript - EventSource 使用什么 HTTP 方法来打开连接?

javascript - Uncaught ReferenceError : getDetails is not defined

javascript - Rails js.erb 文件找不到方法 "render"

javascript - 我无法获得 ES6 的 promise

javascript - 当 Controller $scope 变量更改时,AngularJS View 未更新?

javascript - 根据一天中的时间不断改变背景颜色