Register Script in Plugin Widget

There are 3 issues.

Firstly, you’re calling do_action, triggering the action:

do_action( 'wp_print_footer_scripts', 'tab_widget_scripts' );

When actually, you want to add your function to it, not trigger it. You should be doing this:

add_action( 'wp_print_footer_scripts', 'tab_widget_scripts' );

Secondly, you’re registering this script:

tabs

Then enqueuing this script:

tabs.js

Clearly they don’t match, in the same way that if I give you the ingredients for cake then tell you to make a latte, it isn’t going to work.

Thirdly, you only define the function if the widget is shown on the frontend. This is a little odd, instead you should use add_action on your function in your widget class, and always define it, saving yourself an unnecessary call to is_active_widget