2014-12-07 3 views
-5

У меня возникают проблемы при создании функции, которая должна иметь два параметраJavaScript - создание простой функции

UzelFunkce : function(fn, invFn) { 
    //... 
} 

Функция параметра должна быть: sin, cos, tan, cotg и invFs .. должно быть: acsin , acos ..

Таким образом, функция должна иметь эти вещи. Может ли кто-нибудь помочь мне, пожалуйста?

+0

так где вопрос? – Grundy

+0

Вы, вероятно, должны использовать: 'UzelFunkce: function (fn, invFn)' вместо слов verbose и зарезервированных слов ... –

+0

Хорошо, я переименовал функцию в fn, а другую в invFn, ну, что мне нужно, так это то, что эта функция должна верните эту вещь (sin cos ...) – Cappylol

ответ

1
// didn't really test this, but the ideas should be there 
function UzelFunkce(fn, fnInv) { 
    var fns = { 
     sin: function(x) return MATH.sin(x), 
     cos: function(x) return MATH.cos(x), 
     tan: function(x) return MATH.tan(x), 
     cot: function(x) return 1/MATH.tan(x) 
    }; 
    var fnInvs = { 
     arcSin: function(x) return MATH.asin(x), 
     arcCos: function(x) return MATH.acos(x), 
     arcTan: function(x) return MATH.atan(x), 
     arcCot: function(x) return MATH.atan(1/x) 
    }; 
    if (typeof fns[fn] !== 'undefined' 
    && typeof fnInvs[fnInv] !== 'undefined') { 
     // both fn and fnInverse are valid according to the object above 
     // and allows you to use fns[fn](x) and fnInvs[fnInv](x) 

     // or... 
     fn = fns[fn], fnInv = fnInvs[fnInv]; 

     // fn & fnInv are now valid functions based on the string input. 
     // I don't suggest editing the parameters/arguments unless you know what you are doing 

     // You should also add checks on input, making sure they are strings or w/e 
    } 
} 
+0

Большое спасибо, вы получите мою точку зрения :-) – Cappylol

Смежные вопросы