Initially you have to make a minor change (look at the end of this answer to read about the necessity of this change) in the way you call the Test constructor. Then you have to make a major change in the way you define Test Below are the changes:
(new Test())._('dsdf');
Initially you create an object based on your constructor by using the new operator. Later on, on this object you call the _ method passing to it a string 'dsdf'.
function Test(){
this._ = function( abc ){
console.log( abc );
}
}
(new Test())._('dsdf');
new Test()._('dsdf');
Note in the above snippet the use of this. When you call the Test using the new operator, in the object that would be created there would have been defined a method called _, which expects one parameter and outputs that parameter to the console.
Why you have to change the definition of Test?
This is needed because in the initial definition of Test, the function called _ is not visible to others. It is defined in the scope of Test and it can be called only by code inside the body of Test.
The minor change can be omitted, as you can fairly easy note by running the snippet. However, in my personal opinion the first code is more readable. Furthermore, it would be even more readable, if you had separated the creation of your object and the call of the method, like below:
var test = new Test();
test._('dsdf');