This really doesn't seem like a job for Object Oriented programming. A sexy recursive function would work much better.
var output=[];
function scan(element) {
var children=element.childNodes;
for (var child in children){
if (children[child].nodeValue) {
output.push(children[child].nodeValue);
}else {
scan(children[child]);
};
};
};
scan(window.document.body);
This doesn't break the text up into individual words or even produce JSON, but it will give you a list of the individual words. You still need to do some cleanup on the text. In my 2 seconds of testing I found that it likes to display the text of everything including javascript and newlines (\n). Maybe if I feel like it I'll add more code. But this should get you going.
For turning it into JSON try Douglas Crockford's toJSON code. Just google it.