var o = function() {
var person = {
name: 'jonathan',
age: 24
}
return {
run: function(key) {
return person[key]
}
}
}
Object.defineProperty(Object.prototype, "self", {
get() {
return this;
}
});
console.log(o().run("self")); // logs the object
Это работает, поскольку все объекты наследуют Object.prototype
, поэтому вы можете вставить в него геттер, который имеет доступ к объекту через this
, затем вы можете использоватьоткрытый метод run для выполнения этого метода получения.