javascript - JavaScript 中属性附近的单词 this 是什么意思

标签 javascript

大家好,我是 JavaScript 语言的新手。 我开始看到一些 JavaScript 代码示例。

我无法理解以下代码段:

function Employee(name,salary)
 {
  this.name=name;
  this.salary=salary;

  this.paycheck=function()
  {
   var monthly=this.salary/12;
   document.write(this.name+ ": " +monthly);
  };
} 
var emp= new Employee("Fred",10000);
emp.paycheck();

我的问题:类内属性附近的单词 this 是什么意思(即 this.name=name; this.salary=salary; )?

提前致谢!

最佳答案

this 的使用可以解释为“应用于this 实例的属性”。由于 Employee 是一个构造函数(您使用 new 运算符创建它的实例),每个实例对于这些属性都有自己的值:

var me = new Employee("James", 2000000); //Instance of Employee
console.log(me.name); //Prints James

var you = new Employee("Michael", 2000000); //Another instance
console.log(you.name); //Prints Michael

请注意,这也意味着 Employee 的每个实例都有其自己的 paycheck 方法副本。这不是特别有效,因为必须为对象的每个实例在内存中存储一​​个单独的函数副本。您可以改为在 Employee 对象的 prototype 上声明该方法,这意味着该方法将在所有实例之间共享。

关于javascript - JavaScript 中属性附近的单词 this 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9145112/

相关文章:

javascript - 同时垂直滚动两个表

javascript - HTML 中的绝对路径不起作用

javascript - 如何显示和映射状态或 const 数据数组对象的第一个 id?

javascript - Raphael JS - 维护两个对象之间的路径

javascript - React JS 连接数组并转换为新的二维数组并按二维数组数据总和排序

javascript - 在 js 中使用 mousedown/mouseup,不能改变元素的位置?

javascript - 在 JavaScript 中设置数组

java - Android 自定义 WebView 无法找到加载的 HTML 中定义的 javascript 函数

javascript - 使用 Jquery 在菜单周围添加 div

javascript - socket.io 错误 undefined is not a function