且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

jquery--this

更新时间:2022-09-13 20:20:43

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type=text/javascript charset=utf-8>
var x = "x";
var y = "yyy";
function F(a){
    this.n = 'fsfsf';
    this.sc = 4;
    var i = new init(this);//F(),this指的是window
    i.ii = "ii";
}

function init(o){
    alert(o);//[object Window]
    alert(sc);//4
    alert(o.x);//x
    alert(o.y);//yyy
    this.n = o.sc;  //init方法不是对象调用的时候,new的时候this指的是本类的对象,不是window对象
    this.name = "namename";
    this.o = o;
    that = this;
    return function(){
        alert("333" + this.n);//undefined,this是这个匿名函数的对象
        alert("333" + that.n);
        this.h = that;
        this.k = that.n;
        this.a = that.a
    }
    ;
}
alert(1);
var d = F(3);
alert(window.n)//fsfsf
alert(2);
var dd = new d();
alert(window.name)//
alert(3);
alert(dd.k);//4
alert(dd.h.name);//namename   
alert(dd.a.n);//fsfsf 
alert(window.k);//undefined
alert(window.h.name);//Cannot read property 'name' of undefined   
alert(window.a.n);//Cannot read property 'n' of undefined   



function F(a){
    this.n = 1;
    this.sc = 4;
    return new init(this);//this是F对象
}

function init(a){
    alert("111" + a.sc);//4
    this.n = a.sc;
    return {
        k : this.n
    }
}
alert(1);
var d = F(3);
alert(d.k); //4


function F(a){
    this.n = 1;
    this.sc = "scscsc";
}
var d = new F();
alert(window.sc);//undefined
</script>
</head>
<body>
</body>
</html>
jquery--this

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/6900332.html,如需转载请自行联系原作者

相关阅读