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

    技术2025-02-06  18

    <!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>

    最新回复(0)