***************构造函数 的问题!  (无法调用自已的方法和属性)****************************
var classA = function() {
this.SayHello = function() { alert("hello"); };
//构造函数:
//出错了:
//为什么没有弹出一个对话框?
(function() {
document.write("classA模板 又印出了一个饼干!");
this.SayHello();
})();
};
var ca = new classA();
***************构造函数 的问题!  (无法调用自已的方法和属性)****************************

解决方案 »

  1.   


    var classA = function() {
        var self = this;
        this.SayHello = function() { alert("hello"); };
        //构造函数:
        //出错了:
        //为什么没有弹出一个对话框?
        (function() {
            document.write("classA模板 又印出了一个饼干!");
            self.SayHello();
        })();
    };
    var ca = new classA();
      

  2.   

    匿名函数的执行环境具有全局性,因此对象通常指向window.   //window.name = "A";
    var classA = function() {
        this.SayHello = function() { alert("hello"); };
        //构造函数:
        //出错了:
        //为什么没有弹出一个对话框?
        var self = this;
        
        (function() {
            document.write("classA模板 又印出了一个饼干!");
            //alert(this.name);
            self.SayHello();
        })();
    };var ca = new classA();
      

  3.   


    匿名构造函数中的this默认指向window更改为:(function() {
            document.write("classA模板 又印出了一个饼干!");
            this.SayHello();
    }).apply(this, arguments);
    你的构造方法设计的太有创意了
      

  4.   

    var classA = function() {
        this.SayHello = function() { alert("hello"); };
        
    //这是一个闭包 this指向的是window
    //解决:1 把this当参数传进去 2: this外部付给变量 然后闭包里访问
        (function() {
            document.write("classA模板 又印出了一个饼干!");
            this.SayHello();
        })();
    };
    var ca = new classA();