Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как показать пользовательские функции объекта test? (https://javascript.ru/forum/misc/83452-kak-pokazat-polzovatelskie-funkcii-obekta-test.html)

Katy93 12.12.2021 04:02

Как показать пользовательские функции объекта 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>



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