The problem comes from the fact that the button object from the click() function doesn't have direct access to the widget creator. There are many ways to address that. I suggest you bind the click callback with this._on instead of pButton.click, e.g. replace:
pButton.click(function () { this.function_test(); });
with:
this._on(pButton, {
click: function () { this.function_test(); }
});
Now the this
object inside the click
callback is the widget instance, not the button, thus you can call functions of the widget.
You can test it here: http://jsbin.com/yorunaji/1/edit?html,js,output