您的位置:首页 > Web前端 > JavaScript

js模拟面向对象【也有特别的地方】

2011-02-10 17:22 316 查看
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
">

<html xmlns="http://www.w3.org/1999/xhtml
">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>js模拟面向对象【也有特别的地方】
</title>

</head>

<body>

测试:<input id="test" type="text" value="test"/>

<script language="javascript" type="text/javascript">

var fn1 = new function(){

    //@对象属性

 this.config = {

  c1:'1',

  c2:'2'

    };

    //@私有方法

    function $(id){

     return document.getElementById(id);

    }

    //@公有方法

    this.GetValue = function(id){

     return $(id).value;

    }

};

var selfObj = new function() {

    var fn = function() { };

    fn.prototype = {

        GetValue: function(id) {

            return document.getElementById(id).value;

        }

    };

    //@公有方法   

    this.GetValue2 = function(id){

     return new fn().GetValue(id);

    }

    //@注意:此时返回的是一个fn对象,所以GetValue2这个公有方法不生效

    return new fn();

};

alert(fn1.GetValue('test'));

alert(fn1.config.c1);

//返回出错:对象不支持此属性或方法

alert(selfObj.GetValue2('test'));

//正常执行

alert(selfObj.GetValue('test'));

</script>

</body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息