有人可以解释这个JavaScript代码吗?

时间:2015-12-29 04:05:51

标签: javascript anonymous-function



        settings.supportsCssTransitions = (function (style) {
            var prefixes = ['Webkit', 'Moz', 'Ms'];
            for (var i = 0, l = prefixes.length; i < l; i++) {
                if (typeof style[prefixes[i] + 'Transition'] !== 'undefined') {
                    return true;
                }
            }
            return false;
        })(document.createElement('div').style);
&#13;
&#13;
&#13;

为什么要使用&#39;()&#39;支持匿名功能?什么是(document.createElement(&#39; div&#39;)。style)的用法?是每次我执行settings.supportsCssTransitions时,'document.createElement(&#39; div&#39;)。style'将是传递给匿名函数的默认参数?有人可以帮我解释一下吗?

1 个答案:

答案 0 :(得分:1)

这是一个测试执行浏览器是否支持某些CSS属性的函数。

这构成了什么:

var result = (function(arg) { ...; return smth; })(arg)

确实创建了一个匿名函数并使用参数arg立即执行它,然后将其返回值赋给result

使用一系列顶级语句可以实现相同的结果,但这样做是更好的格式化,因为函数内部使用的变量保留在其中。

document.createElement('div').style位只是创建一个虚拟HTMLElement并将其style属性传递给函数,然后对其进行分析。