Так что я пытаюсь сделать что-то хитрое, но не могу забыть.
У меня есть такой объект:
var dummyObject = {
src: 'Source code',
fileExt: 'ejs',
}
А потом другая функция создает копию этого объекта с функцией render()
, поэтому по сути это будет:
{
src: 'Source code',
fileExt: 'ejs',
render: function() {
...
}
}
Допустим, я определил эту копию dummyObject
как копию с именем copyObject
. Есть ли способ вызвать copyObject.render()
и получить доступ ко всем copyObject
свойствам без передачи его в качестве аргумента?
Важно отметить, что я не буду определять функцию в объявлении объекта, а скорее определю, а затем назначу ее программно, что-то вроде:
var copyObject = _clone(dummyObject)
copyObject.render = function() {...}
Спасибо!
РЕДАКТИРОВАТЬ: На всякий случай мой вопрос неверно истолкован (я набрал его, когда было поздно, и я устал). В этом случае dummyObject следует игнорировать, поскольку copyObject является новой новой копией без каких-либо ссылок. Так что в основном я добавляю метод к copyObject, и мне нужен он для доступа к самому себе. Как это:
function selectProcessor (obj) {
var newObj = _clone(newObj)
newObj.render = function () {
console.log(this.src) // It doesn't make sense accessing this from here
}
return newObj
}
// At some point I execute this function
var copyObject = selectProcessor(dummyObject)
// Now I call its render function, and the behavior I want is to log its src property
copyObject.render()