Одной основной характеристикой на функциональном языке является понятие первоклассных функций. Идея состоит в том, что можно передать функции как параметры к другим функциям и возвратить их как значения.
Функциональное программирование включает код записи, который не изменяет состояние. Основная причина того, чтобы сделать так - то, так, чтобы последовательные вызовы к функции привели к тому же результату. Можно записать функциональный код на любом языке, который поддерживает первоклассные функции, но существуют некоторые языки, как Haskell, которые не позволяют Вам изменять состояние. На самом деле Вы, как предполагается, не делаете побочных эффектов (как распечатывание текста) вообще - который кажется, что это могло быть абсолютно бесполезно.
Haskell вместо этого использует другой подход к IO: монады. Это объекты, которые содержат желаемую операцию IO, которая будет выполняться верхним уровнем Вашего интерпретатора. На любом другом уровне они - просто объекты в системе.
, Что обеспечивают преимущества функциональное программирование? Функциональное программирование позволяет кодировать с меньшим количеством потенциалов для ошибок, потому что каждый компонент полностью изолируется. Кроме того, использование рекурсии и первоклассных функций допускает простые доказательства правильности, которые обычно зеркально отражают структуру кода.
Причины сбоя могут быть следующими: -
Если вы серьезно занимаетесь iframe в Ext, вам следует изучить пользовательское расширение ManagedIFrame:
http://www.extjs.com/forum/showthread.php?t= 40961
Он имеет встроенные события и обмен сообщениями между кадрами, а также многие другие преимущества.
Я никогда не пытался обрабатывать событие afterLayout, кроме кода, совместимого с браузером.
вы будете использовать ( iframe.contentWindow || iframe.contentDocument
) вместо iframe.contentWindow
.
попробуйте что-нибудь вроде
var iframe = document.getElementsByTagName('iframe')[0],
iDoc = iframe.contentWindow // sometimes glamorous naming of variable
|| iframe.contentDocument; // makes your code working :)
if (iDoc.document) {
iDoc = iDoc.document;
iDoc.body.addEventListener('afterLayout', function(){
console.log('works');
});
};
Надеюсь, это поможет.