3
function Box(width, height)
{
  this.width = width;
  this.height = height;
}

var myBox = new Box(5,5);
  1. 从技术上讲,new关键字在这里做什么?它是在创建一个新功能吗?还是创建一个新对象并将函数应用到它?

  2. 如果是这样,那么这是一种创建“盒子”的方法,这是否意味着this关键字实际上是指对象 myBox?

4

1 回答 1

11

它正在创建一个新对象,Box用作其构造函数。this 在这种情况下(当使用关键字调用函数时)的值new是正在构造的新实例。这个新对象将继承自定义的任何内容Box.prototype(默认为Object.prototype)。

我说在这种情况下,因为在 JavaScript 中,值this是由函数的调用方式决定的。我建议阅读MDN 页面以this获取更多信息。


注意:如果这个问题应该被关闭,它应该是重复的。以下是一些可能对您也有帮助的重复链接:

于 2013-05-28T16:24:16.690 回答