javascript 私有,特权方法

来源:百度知道 编辑:UC知道 时间:2024/06/21 03:11:44
<script>
function user(){
var form=document.getElementsByTagName("form")[0];

this.name=function(){
return form.getAttribute("name");
};
}

var user=new user();

alert(user.name());
</script>

<body>
<form name="js" method="post">

</form>
</body>

上面一段代码...利用特权方法访问私有变量form ..提取特性...为什么提示form变量不是对象呢???? 只有这一种方法显示错误...其他的任何方法都会提取成功...

你脚本的位置放错了,你执行那段脚本时,html代码还没解析完,dom也没生成好。所以报错。

这样写,或者在onload后再调用。

<body>
<form name="js" method="post">

</form>
</body>

<script>
function user(){
var form=document.getElementsByTagName("form")[0];
this.name=function(){
return form.getAttribute("name");
};
}

var user=new user();

alert(user.name());
</script>

你的代码写在<body>之前了,当alert(user.name())运行时,<body>还没开始解析呢,当然不存在<form name="js" method="post">了