Здравствуйте мне нужно получить пользовательские функции только моего объекта. Мне удалось отобразить функции объекта 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> |