Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.12.2021, 04:02
Кандидат Javascript-наук
Отправить личное сообщение для Katy93 Посмотреть профиль Найти все сообщения от Katy93
 
Регистрация: 28.12.2018
Сообщений: 137

Как показать пользовательские функции объекта test?
Здравствуйте мне нужно получить пользовательские функции только моего объекта. Мне удалось отобразить функции объекта window. Выборка пользовательской функции происходит через раскрывающий список (select). Я создала еще один объект назвала его test. Теперь мне нужно вывести содержимое этого объекта (функции) в список, потом при выборе любой функции будет отображаться её содержимое. Как это можно сделать?

Вот код который создает список всех пользовательских функции windows и при выборе показывает содержимое функции.

function f1(x) { return Math.sqrt(Math.abs(x)); }
 function f2(x) { return (x<0?-1:(x>0?1:0)); }
 var arr = 1;
 //Объект test нужно вывести список функции и при выборе показывать содержимое функций
 test = function(x,y)
 {
    this.x = x;
    this.y = y;
    this.getX = function()
    {
      return this.x;
    }
    this.getY = function()
    {
      return this.y;
    }
 }
 
 t1 = new test(10,20);
 console.log(t1.getX());

 function showFuncs (fName) { //Показать код функции с именем fName
  document.getElementById('showFunctionId').innerHTML = eval(fName).toString();
 }

 function getAllFuncs (obj) { //Получить массив с именами функций из объекта obj
  var methods = [];
  for (var m in obj) {        
   if (typeof obj[m] == "function" && obj.hasOwnProperty(m)) {
    methods.push (m);
   }
  }
  return methods;
 }

 //Загрузить массив опций options в элемент HTML select
 var options=getAllFuncs(window);
 var select = document.getElementById("selectFunctionId");
 for (var i = 0; i < options.length; i++) {
  var opt = options[i];
  var el = document.createElement("option");
  el.textContent = opt;
  el.value = opt;
  select.appendChild (el);
 }

Код:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Показ пользовательских функций</title>
    <style>        
        canvas{
            border: 1px solid #000;
            display: block;
            margin: 0 auto;
        }
    </style>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
 
</head>
<body>
<ul class="list">
</ul>

    <canvas id="canvas" width="800" height="480"></canvas>
    <span id="code1"></span>
    
    <select id="selectFunctionId" onchange="showFuncs(this.options[this.selectedIndex].value);">
 <option>Выберите функцию из списка
</select>
<pre id="showFunctionId"></pre>
<script src="primer.js"></script>
    
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 12.12.2021, 06:56
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от Katy93
Как это можно сделать?
Слово window заменить на t1.

Сообщение от Katy93
Я создала еще один объект назвала его test.
Ты создала функцию, функцию-конструктор, класс. А объект это t1, он экземпляр этого класса test.

Сообщение от Katy93
this.options[this.selectedIndex].value
Можно просто this.value, так короче немного.

Последний раз редактировалось Rise, 12.12.2021 в 07:04.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как показать текст после того как его скрыли? maxim1978 Элементы интерфейса 4 30.05.2021 15:45
Как вернуть результат функции в литерал объекта komplekt_17 Общие вопросы Javascript 12 14.01.2017 20:22
В callback функции теряется контекст. Как это обойти? xintrea AJAX и COMET 4 02.06.2013 11:40
onResize() для DIV-a faiwer Общие вопросы Javascript 6 26.06.2012 15:27
как реализовать передачу функции в функцию?? czp Общие вопросы Javascript 10 29.11.2011 19:21