Я написал короткий код наследования reader
из Person
:
<script>
/* Class Person. */
function Person(name) {
this.name = name;
}
Person.prototype.getName = function() {
return this.name;
}
var reader = new Person('John Smith');
alert(reader.getName());
</script>
В качестве альтернативы я могу удалить строку Person.prototype.getName = function() { return this.name; }
и создать ее в объекте Person. Например
<script>
/* Class Person. */
function Person(name) {
this.name = name;
this.getName = function() { return this.name;}
}
var reader = new Person('John Smith');
alert(reader.getName());
</script>
Я получил тот же результат при вызове getName()
в обоих случаях. Итак, как они отличаются?