'this'和"原型",功能简单



我试图解决一个问题,但我需要了解原型。

我在读书,我以为我明白了,但我仍然有一些并发症

function Person(name){
  this.name = name;
}
Person.prototype.greet = function(otherName){
  return "Hi " + otherName + ", my name is " + name;
}
var kate = new Person('Kate'); //name
var jose = new Person('Jose'); //otherName ???

那么,当我需要调用函数时,是我的错误吗?或者它在哪里?

name是对象实例的属性,因此需要在greet方法中使用this.name

据我所知,你需要像打招呼一样显示Hi Jose, my name is Kate。在这种情况下,您需要将other person传递给greet方法,然后您可以使用object.name 访问该人名

function Person(name) {
  this.name = name;
}
Person.prototype.greet = function(other) {
  return "Hi " + other.name + ", my name is " + this.name;
}
var kate = new Person('Kate');
var jose = new Person('Jose');
snippet.log(kate.greet(jose));
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>