car=function(){
    car111=function(){}    return car111;
}carA=new car();
请问返回的是什么。是实例化的car111吗?

解决方案 »

  1.   

    你这是JS吧 ,PHP没这么写的。
      

  2.   

    返回一个function。var car=function(){
        var car111=function(a){alert(a)}    return car111;

    car()('hello world')
      

  3.   

    返回的值,要看function 的内容
      

  4.   

    其实这个问题属于闭包范畴,lz可以多多了解下这个javascript的强大特性。
      

  5.   

    var car=function(a){
        var b = 'world';
        var car111=function(){alert(a+' '+b)}    return car111;
    }var carA=new car('hello'); 
    carA()
      

  6.   

    上面不需要实例化就可以得结果的啊
    var carA=car('hello'); 
    carA()
    还是不理解实例化的作用
      

  7.   

    怎么说呢,这个东西是javascript强大的一个特性,很多时候都会用到,跟安全性没什么太大的关系,当然用得不好很有可能会出现大问题。
      

  8.   

    不能用php的那套去理解javascript呀,javascript有不少独特而有魅力的东西,作用域的指定(和闭包有密切联系),闭包,prototype链+call/apply实现继承,单线程的延时机制(setTimeout,setInterval)。
    有时候真的感觉js的知识可意会,却不好解释。。惭愧。
      

  9.   

    返回的是函数的引用,也就是函数的指针 car111,结果应该是function(){}。不是实例化的类。因为你要是把car111=function(){}看作是一个类的声明,那么你必须在声明之后,对它进行实例化。例如:var car = function(){ 
        var car111=function(){
    this.name = 'hello';
    }; 
        var instance = new car111();//进行实例化
        return instance; 
    } var carA = new car(); alert('carA: ' + carA.name);
    /**
       [说明] 写js时要注意,对变量的声明要写关键字var ,如:var arr = [];
             如果不写 var 这个关键字,那么变量 arr将是一个全局变量,这样很危险。
              变量的作用域越小越保险越好。也是我们写程序的一个要求。       
    */
      

  10.   


    以后多多指教JS哦 跟你学习 O(∩_∩)O哈哈~
      

  11.   

    car 是一个函数名 
    car = function(){}  比 function car(){}  写灵活(效果是相同的)
    carA = new car();
    相当于Java中的初始化对象,初始化函数car
    car111()函数的返回值也是car()函数的返回值 (外层函数的返回值)