Создание пользовательского метода, который изменяет свойство объектов - PullRequest
0 голосов
/ 19 сентября 2011

Я новичок в пользовательских объектах, но нашел их очень полезными, особенно потому, что в долгосрочной перспективе они сокращают объем написания кода.

Я работаю с конкретным алгоритмом, который создает элемент клона и использует метод, который создает новый уникальный идентификатор на основе некоторых свойств клонированного элемента. Вот как это выглядит сейчас:

Element.prototype.theID = theID;

function theID(){
//this.makeNewID code
//code that builds a new ID and stores it in a variable called nwID
return nwID
}

function buildClone(cloneThis){
//builds  a clone out of the specified cloneThis element and stores it in a variable
//called clonedElement
 var nwID = clonedElement.theID;//determines a new ID
 clonedElement.setAttribute('id', nwID);//asignes the ID to the element.
 }

последние две строки в функции buildClone () - это то, чего я хочу избежать. Мне бы хотелось, чтобы метод назначал новый идентификатор указанному элементу прямо в методе, а не просто возвращал новый идентификатор.

Это то, что я придумал

Element.prototype.theID = theID;

function theID(){
//this.makeNewID code
//code that builds a new ID and stores it in a variable called nwID
this.setAttribute('id', nwID);//asignes the ID to the element.
}

function buildClone(cloneThis){
//builds  a clone out of the specified cloneThis element and stores it in a variable
//called clonedElement
 clonedElement.theID();//determines a new ID
 }

Этот новый способ, которым я пытался, не работает, я также попробовал return clonedElement.theID;, и, похоже, он не работает. Есть идеи, что я делаю не так?

Я прошу прощения, это была ошибка в моей части, опубликовав это здесь, но я исправил это, это то, как он на самом деле выглядит, и он все еще не работает.

1 Ответ

1 голос
/ 19 сентября 2011

theID - это функция, поэтому ее нужно вызвать:

function buildClone(cloneThis){
    //builds  a clone out of the specified cloneThis element and stores it in a variable
    //called clonedElement
    clonedElement.theID(); //determines a new ID
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...