Пожалуйста, см следующий сценарий:JavaScript функция инкапсуляция вне объекта
var x = function(param){
this.data=param;
this.y = function(){
alert(this.data)
}
return this;
}
/*
x.prototype.z = function(){
alert(this.data);
}
*/
x(123).y();
x(123).z(); // This should behave same as y()
Когда я называю х (123) .y() затем отображается сообщение . Функция у() объявленная внутри х()
Теперь я хочу объявить еще одну функцию г(), которая будет находиться за пределами х() но будет вести себя такие же как y() [ассоциировать с x()]
Возможно ли это? Если возможно, как?
Я знаю о новой проблеме с ключевым словом. Но мне нужно иметь решение, не используя новые. ИДЕИ? –
извините, если вы не хотите использовать 'new', вы не можете использовать' prototype', поэтому вам нужно будет добавить метод 'z()' ко всем объектам вручную ... – Christoph
добавил пример того, как «скрыть» «новый» и использовать простой вызов функции для создания объекта – Christoph