2、JSON是由javascript发展而来的一种简单的数据交换协议,采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯,使JSON成为理想的数据交换语言。
<html>
<head>
<title>Example-5.4构造函数</title>
</head>
<body>
<script>
<!--
/* 在这里,我们定义了一个名为Point的类型
它具有x、y两个属性和getDistance方法
完成定义之后,JavaScript允许我们通过new运算符
构造它的实例,就像C++和Java等面向对象语言一样。*/
function Point(x, y)
{
//通过构造函数参数初始化x、y属性的值
this.m = x;
this.n = y;
//定义getDistance()方法
this.getDistance = function()
{
return Math.sqrt(this.m * this.m + this.n * this.n);
}
//重写toString方法
this.toString = function()
{
return "(" + this.m + "," + this.n + ")";
}
//定义一个json类型参数
this.jsonTest={a:{c:3,d:5,e:8},b:2};
}
//构造Point对象实例
var pointA = new Point(1,2);
var pointB = new Point(3,4);
var pointC = new Point(-1,-2);
//通过重载过的toString()方法显示它们
document.write(pointA + "<br/>");
document.write(pointB + "<br/>");
//调用getDistance()方法
document.write(pointC.getDistance());
//输出json参数的值
alert(pointA.jsonTest.a.e);
-->
</script>
</body>
</html>
页面输出结果:
(1,2)
(3,4)
2.23606797749979
弹出对话框: 8
例子总结:
这个 function Point(x, y){}相当于java里面的类,而
var pointA = new Point(1,2);
var pointB = new Point(3,4);
var pointC = new Point(-1,-2);
相当于这个类的三个实例。
为什么要重写toString方法?
this.toString = function()
因为document.write(pointA + "<br/>");这个输出一定是文本,所以执行这个语句就会默认执行toString()这个方法,重写了这个方法则输出了我们想要的结果。