Вы регистрируете post.displayTab
в качестве прослушивателя событий на post.imgElement
, что означает, что значение this
будет post.imgElement
при вызове прослушивателя событий. Следовательно, свойство Link
отсутствует (this.Link
не определено). Один из способов избежать этой проблемы - зарегистрировать обработчик событий по-другому:
post.imgElement.addEventListener("click", function() {
post.displayTab();
}, false)
post.displayTab
вызывается здесь как метод объекта post
, поэтому переменная this
будет установлена правильно. Другой вариант - прекратить использование this
в post.displayTab
:
this.imgElement = document.createElement("image");
var me = this;
this.displayTab = function(){
chrome.tabs.create({'url' : me.Link}, function(tab){});
}
Переменная me
запоминает «правильное» значение this
.