¿Cómo hacer que la función encadenable en JavaScript?

Vamos a imaginar una función como esta:

function foo(x) {
    x += '+';
    return x;
}

l uso del mismo sería como:

var x, y;
x = 'Notepad';
y = foo(x);
console.log(y); // Prints 'Notepad+'.

Estoy buscando una manera de crear funciones que se puedan encadenar con otras funciones.

so @Imagine:

var x, y;
x = 'Notepad';
y = x.foo().foo().toUpperCase(); // Prints 'NOTEPAD++'.
console.log(y);

¿Cómo haría esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta