Heim >Backend-Entwicklung >PHP-Tutorial > 崩溃了,这样的js写法你们见过么?希望能得到详细的指点解决方法

崩溃了,这样的js写法你们见过么?希望能得到详细的指点解决方法

WBOY
WBOYOriginal
2016-06-13 13:48:09874Durchsuche

崩溃了,这样的js写法你们见过么?希望能得到详细的指点
function interfaceInit(){
Dialog = (function (){
var now = null;
return {
add : function (id){
alert( id);
},
getNow : function(){
alert(now);
}
}
})();
}

这到底是函数还是对象啊?怎么会有这样的写法?我怎么调用?
这样的写法有什么好处?写得是人都看不懂的!

------解决方案--------------------
interfaceInit 应该是面向对象里的接口

所有继承了interfaceInit这个接口的类或函数,都要定义Dialog函数。
------解决方案--------------------
那Dialog函数里面又有add和getNow两个方法,怎么调用呢?
==========

JScript code

var init = new interfaceInit();
init.Dialog.add();
init.Dialog.getNow();
<br><font color="#e78608">------解决方案--------------------</font><br>这样改会不会看得明白点?<br>可以把下面的代码扔到页面中,应该会alert出2.<br>
JScript code

<script>
var Dialog = {};
function   interfaceInit(){ 
var now = null;
Dialog   =  { 
                add  :  function(id){ 
               alert(id); 
            }, 
            getNow :  function(){ 
               alert(now); 
            } 
        } 
} 
var interface = new interfaceInit();

(function(){
    var dialog = Dialog;
    dialog.add(2);
})()
</script>
<br><font color="#e78608">------解决方案--------------------</font><br>  Js类 匿名对象.
<br><font color="#e78608">------解决方案--------------------</font><br>To:xuStanly<br>你自己写的代码有做过测试吗?!<br><br>To:foolbirdflyfirst<br>
JScript code
<script>
var Dialog = {};
function   interfaceInit(){ 
var now = null;
Dialog   =  { 
                add  :  function(id){ 
               alert(id); 
            }, 
            getNow :  function(){ 
               alert(now); 
            } 
        } 
} 
var interface = new interfaceInit();

(function(){
    var dialog = Dialog;
    dialog.add(2);
})()
</script>
<br><font color="#e78608">------解决方案--------------------</font><br>to ls:<br>我原意是让lz明白<br>1.(function(){alert(1)})();//定义一个匿名函数,然后马上执行。<br>2. var a = function(){alert(1);} a();//定义一个变量为函数,然后调用执行<br><br>这两种调用方式其实是一样的。<br><br>所以Dialog = (function(){<br>                return{a:'1',b:'2'}//返回一个object<br>             })();<br>其实相当于Dialog = {a:'1',b:'2'}<br><br><br>也可以改得通俗易懂一点<br>var a = function(){return {a:'1',b:'2'}}<br>Dialog = a();<br>alert(Dialog.a)//will alert 1<br><br>
<br><font color="#e78608">------解决方案--------------------</font><br>
JScript code
<script type="text/javascript">
    function interfaceInit(){
        Dialog = (function(){
            var now = null;
            return {
                add: function(id){
                    alert(id);
                },
                getNow: function(){
                    alert(now);
                }
            }
        })();
    }
    
    interfaceInit();
    Dialog.add(123);
</script>
<br><font color="#e78608">------解决方案--------------------</font><br>这种格式非常正常,如果你深入的了解了js,就会发现如果想实现一些比较高级的应用,js代码只能这么写,建议楼主看看<br><javascript>(也就是O'reilly的犀牛书),重点学习一下与函数,对象相关的章节<br>然后,可以找一个比较流行的js框架学习一下他的源代码,比如prototype <div class="clear">
                 
              
              
        
            </div></javascript>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn