• js11--js与C++、java异同


    function F(){
        this.name = "111";
        this.say = function(){alert(222);}
        alert(333);
    }    
    
    var f1 = new F();//333
    alert(f1.name);//111
    f1.say();//222
    f1();// f1 is not a function , f1是java里面的对象,不能()执行
    
    
    
    
    var f2 = function(){   //f2也可以看成是一个类,跟上面写法一样
        this.name1 = "444";
        this.say1 = function(){alert(555);}
        alert(666);
    }
    f2();//666,f2当成c++里面的函数地址看,只能小括号执行,没有对象的属性方法
    alert(f2.name1);//undefined,不能当成对象看,因为对象只有3中,var o = {},var o = new Object(),var o = new F()
    f2.say1();//f2.say1 is not a function
    
    
    
    
    function ff(){}
    var f = new ff();  //一个对象生成,跟java一样
    ff();  //函数调用,跟C++一样,函数名F是函数地址,F()是调用函数执行。
     
     
    
    function f(){
        var num = 1;
        return function(){//把子类对象return出去,每return一次都是一个新的对象
            num++;
            alert(num);
        }
    }
    var r1 = f();
    r1();//2
    r1();//3
    
    var r2 = f();//2个对象
    r2();//2
    r2();//3
    
    函数每执行一次就开辟一个内存区域,嵌套函数产生的闭包,多个子函数闭包共享父闭包,函数级别的继承,
    function test(){
        function(){  //不能这么写
            for(var i = 1 ; i <=5; i++){  //i
                alert(i);
            }                        
        }
        
        var d = function(){//不能不写var d = ,语法过不了,此时把函数里面当成类里面看待。可以这么写,但是函数不执行
            for(var i = 1 ; i <=5; i++){  //i
                alert(i);
            }                        
        }
    function test(){
        function b(){  //可以这么写
        }
    }

    函数当类看时,跟java一样。   类里的函数和原型里的函数当对象的成员函数看,类里的属性和原型里的属性当成对象的成员变量看。

    函数当函数看是,当成普通函数看就是当成函数地址看。

  • 相关阅读:
    《Windows核心编程系列》十四谈谈默认堆和自定义堆
    《windows核心编程系列》十五谈谈windows线程栈
    《Windows核心编程系列》十三谈谈在应用程序中使用虚拟内存
    《Windows核心编程系列》十二谈谈Windows内存体系结构
    《Windows核心编程系列》十一谈谈Windows线程池
    Extjs利用vtype验证表单
    Extjs文本输入框
    Extjs文本输入域
    远程数据源Combobox
    Extjs整体加载树节点
  • 原文地址:https://www.cnblogs.com/yaowen/p/6865158.html
Copyright © 2020-2023  润新知