1 js中也有toString方法。该方法是从Object基类继承下来的。当alert或document.write方法时,参数为类对象的参数。这时会自动调用类对象的转化为字符串的toString方法。如果没有重写则往上查找直至找到。可以通过prototype类添加。
如:function classA(){
this.name="";
this.value="";
this.getName=function(){
return this.name;
}
this.getValue=function(){
return this.value;
}
this.setName=function(name_){
this.name=name_;
}
this.setValue=function(value_){
this.value=value_;
}
}
//通过prototype来重写toString方法
classA.prototype.toString=function(){
return "<div>"+this.getName()+"--"+this.getValue()+"</div>";
}
jsp:
<input type="button" name="test" value="测试js的toString()" οnclick="btn_test_click()"/>
js:
function btn_test_click(){
var classA1=new classA();
classA1.setName("xcl");
classA1.setValue("111");
alert(classA1);//会调用该类对象的toString方法。
}
也可以用document.write方法来调用。
如:
function btn_test_click(){
var classA1=new classA();
classA1.setName("xcl");
classA1.setValue("111");
document.write(classA1);//会调用该类对象的toString方法
}
!!!!记住:js中如果想要类对象转化为字符串方法。就可以重写该类对象中的toString方法。通过prototype。这样就可以当使用alert或者document.write方法时,参数为类对象。目的是将类对象转化为字符串时,会自动调用类对象的toString方法。
!!!!!总结:
1 js中和java中的toString方法都是将该类对象转化为字符串的函数。如果想要将该类对象转化为字符串则可以重写该toString方法。
2 在调用的方法的参数为类对象时会自动调用该类对象的toString方法,如js中的alert方法、document.write方法。java中的System.out.println方法、String.valueOf方法。
3 当然了也可以直接调用该类对象的toString方法来直接得到字符串。
完整的例子:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<link rel="stylesheet" type="text/css" href="<%=basePath %>css/dtree.css"/>
<script type="text/javascript" language="javascript" src="<%=basePath %>js/dtree.js"></script>
</head>
<body>
aaaaa
<input type="button" name="test" value="测试js的toString()" οnclick="btn_test_click()"/>
</body>
<script type="text/javascript">
d12=new dTree('d12');
d12.add(0,-1,"0");
d12.add(10,0,"10");
d12.add(11,10,"11","qq");
d12.add(12,10,"12","ddd");
d12.add(20,0,"20");
document.write(d12);
function btn_test_click(){
var classA1=new classA();
classA1.setName("xcl");
classA1.setValue("111");
alert(classA1);
//document.write(classA1);
}
function classA(){
this.name="";
this.value="";
this.getName=function(){
return this.name;
}
this.getValue=function(){
return this.value;
}
this.setName=function(name_){
this.name=name_;
}
this.setValue=function(value_){
this.value=value_;
}
}
classA.prototype.toString=function(){
return "<div>"+this.getName()+"--"+this.getValue()+"</div>";
}
//btn_test_click();
</script>
</html>
如:function classA(){
this.name="";
this.value="";
this.getName=function(){
return this.name;
}
this.getValue=function(){
return this.value;
}
this.setName=function(name_){
this.name=name_;
}
this.setValue=function(value_){
this.value=value_;
}
}
//通过prototype来重写toString方法
classA.prototype.toString=function(){
return "<div>"+this.getName()+"--"+this.getValue()+"</div>";
}
jsp:
<input type="button" name="test" value="测试js的toString()" οnclick="btn_test_click()"/>
js:
function btn_test_click(){
var classA1=new classA();
classA1.setName("xcl");
classA1.setValue("111");
alert(classA1);//会调用该类对象的toString方法。
}
也可以用document.write方法来调用。
如:
function btn_test_click(){
var classA1=new classA();
classA1.setName("xcl");
classA1.setValue("111");
document.write(classA1);//会调用该类对象的toString方法
}
!!!!记住:js中如果想要类对象转化为字符串方法。就可以重写该类对象中的toString方法。通过prototype。这样就可以当使用alert或者document.write方法时,参数为类对象。目的是将类对象转化为字符串时,会自动调用类对象的toString方法。
!!!!!总结:
1 js中和java中的toString方法都是将该类对象转化为字符串的函数。如果想要将该类对象转化为字符串则可以重写该toString方法。
2 在调用的方法的参数为类对象时会自动调用该类对象的toString方法,如js中的alert方法、document.write方法。java中的System.out.println方法、String.valueOf方法。
3 当然了也可以直接调用该类对象的toString方法来直接得到字符串。
完整的例子:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<link rel="stylesheet" type="text/css" href="<%=basePath %>css/dtree.css"/>
<script type="text/javascript" language="javascript" src="<%=basePath %>js/dtree.js"></script>
</head>
<body>
aaaaa
<input type="button" name="test" value="测试js的toString()" οnclick="btn_test_click()"/>
</body>
<script type="text/javascript">
d12=new dTree('d12');
d12.add(0,-1,"0");
d12.add(10,0,"10");
d12.add(11,10,"11","qq");
d12.add(12,10,"12","ddd");
d12.add(20,0,"20");
document.write(d12);
function btn_test_click(){
var classA1=new classA();
classA1.setName("xcl");
classA1.setValue("111");
alert(classA1);
//document.write(classA1);
}
function classA(){
this.name="";
this.value="";
this.getName=function(){
return this.name;
}
this.getValue=function(){
return this.value;
}
this.setName=function(name_){
this.name=name_;
}
this.setValue=function(value_){
this.value=value_;
}
}
classA.prototype.toString=function(){
return "<div>"+this.getName()+"--"+this.getValue()+"</div>";
}
//btn_test_click();
</script>
</html>