Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как скрыть содержимое функции? (https://javascript.ru/forum/misc/34743-kak-skryt-soderzhimoe-funkcii.html)

ananax 17.01.2013 09:11

Как скрыть содержимое функции?
 
День добрый,

Подскажите, Люди!
Делаю простой скрипт:
function Test(options){
  var rowcount = 0;
  var GetRowCount = function(){return rowcount;}
  this.RowCount = (GetRowCount);
  return this;
}
var t = new Test();
alert(t.RowCount);

В алерте я намеренно опустил скобки функции. В результате Алерт показывает мне тело функции (текст). Делая тоже самое с функциями какого-нибудь фреймворка фокус не прокатывает.
Вот как бы сделать также, чтоб либо ошибку выдало, что такая проперти не существует, либо ничего не выдало?

Спасибо за понимание

danik.js 17.01.2013 09:19

function Test(options){
  var rowcount = 0;
  var GetRowCount = function(){return rowcount;}
  GetRowCount.toString = function() {return 'undefined'}
  this.RowCount = (GetRowCount);
  return this;
}
var t = new Test();
alert(t.RowCount);

ananax 17.01.2013 09:22

Ух, Спасибо!
Как просто и элегантно!

ananax 17.01.2013 09:28

Ух, даже вот так хорошо работает:
GetRowCount.toString = function(){return GetRowCount();}

Вот только теперь не понятно, что это функция.
Хорошо, когда нет параметров, а если есть, такой фокус уже не прокатит.
Придется выводить undefined


Часовой пояс GMT +3, время: 08:59.