Как определить свойство геттера для уже определенного объекта JavaScript? - PullRequest
1 голос
/ 17 октября 2011

Рассмотрим этот код:

// Creating an empty object, without inheriting (binding) to any prototype
var human = Object.create(null); 
human.firstName = 'Saeed';
human.lastName = 'Neamati';

Теперь я хочу добавить свойство fullName к этому объекту, которое возвращает firstName + ' ' + lastName объекта.

Используя буквенное обозначение объекта, я могу просто написать функцию получения следующим образом:

var human = {  
   firstName: 'Saeed',
   lastName: 'Neamati',
   get fullName() {
       return this.firstName + ' ' + this.lastName;
   }   
}

Но я не могу понять, как прикрепить свойство получения к объекту, который ужепостроен где-то еще.

Ответы [ 2 ]

2 голосов
/ 17 октября 2011

Вы можете использовать Object.defineProperty

Object.defineProperty(<object>, <property-name>, <descriptor>);

Где <descriptor> может быть что-то вроде:

// from the example:
{ value: 0x9f91102,   
  get: function() { return 0xdeadbeef; } }
1 голос
/ 17 октября 2011

попробуйте это:

Human = function(){
  human.firstName = 'Saeed';
  human.lastName = 'Neamati';
};

human.prototype.getFullName = function(){
  return this.firstName + ' ' + this.lastName;
}

var humanOne = new Human();
alert(humanOne.getFullName());

Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...