日期:2014-05-16  浏览次数:20374 次

求用法的出处
<script   type= "text/javascript ">
function   Point(x,   y)
{
if(x)   this.x   =   x;
if(y)   this.y   =   y;
}
Point.prototype.x   =   0;
Point.prototype.y   =   0;

function   LineSegment(p1,   p2)
{
//私有成员
var   m_firstPoint   =   p1;
var   m_lastPoint   =   p2;
var   m_width   =   {
valueOf   :   function(){return   Math.abs(p1.x   -   p2.x)},
toString   :   function(){return   Math.abs(p1.x   -   p2.x)}
}
var   m_height   =   {
valueOf   :   function(){return   Math.abs(p1.y   -   p2.y)},
toString   :   function(){return   Math.abs(p1.y   -   p2.y)}
}
//getter
this.getFirstPoint   =   function()
{
return   m_firstPoint;
}
this.getLastPoint   =   function()
{
return   m_lastPoint;
}

this.length   =   {
valueOf   :   function(){return   Math.sqrt(m_width*m_width   +   m_height*m_height)},
toString   :   function(){return   Math.sqrt(m_width*m_width   +   m_height*m_height)}
}
}
var   p1   =   new   Point;
var   p2   =   new   Point(2,3);
var   line1   =   new   LineSegment(p1,   p2);
var   lp   =   line1.getFirstPoint();
lp.x   =   100;     //不小心改写了lp的值,破坏了lp的原始值而且不可恢复
alert(line1.getFirstPoint().x);
alert(line1.length);   //就连line1.lenght都发生了改变
</script>

-----

var   m_width   =   {
valueOf   :   function(){return   Math.abs(p1.x   -   p2.x)},
toString   :   function(){return   Math.abs(p1.x   -   p2.x)}
}
第一次看到这种用法,返回值赋值要考虑到数值和字符串2种情况?
求个出处,文档资料都可以.

------解决方案--------------------
这种用法好象和Object的原型有关系。

不清楚计算出来的值为什么有小数位。98.63535343


------解决方案--------------------
var abc={aaa: "a ",b: "aa "}
这是JSON(JavaScript Object Notation),JS的一种数据结构原型,解析起来比XML快,现在正在逐渐流行的一种新数据模式,网上搜索下就知道了

对楼上的说:
这个和Object();是不同的,Object()声明的是对象,这个是数据模型

JSON是一种正在网络上慢慢兴起的数据交换格式。就象AJAX并不是什么新技术一样,JSON也没有提供什么新格式,它基于ECMAScript标准中对ObjectLiteral的定义(ECMA-262, 11.1.5),早就被javascript支持。
格式定义非常简单,就是通过一组键值对来定义一个对象。在javascript中,你可以直接将这种格式的数据赋值给一个变量,然后通过键名取值。相对于使用xml来作为数据交换格式,如果要在javascript里使用,首先需要创建一个DOMParser,然后通过DOM接口访问节点对象,非常繁琐,更不用说不同浏览器的实现中DOMParser的实现和DOM接口都有诸多不同。为什么大量的AJAX应用中宁可直接返回一个HTML片断而不是直接把XML交给javascript处理,一个主要原因就是处理XML的过程比较复杂。JSON最重要的贡献就是简化了解析数据的过程。
del.icio.us提供的在网页上显示书签的javascript脚本就基于JSON,看一下这个脚本,再设想一下通过AJAX读取del.icio.us提供的RSS接口来实现这个功能,就能体会JSON的巧妙了。
除此之外,更有人提出类似XSLT的JSONT,可以将JSON格式的内容转换成其他形式,虽然还暂时还没有XSLT灵活和强大,至少展示了一种可能性。
JSON解决的另一个传统AJAX中xmlhttprequest不能解决的问题就是跨域链接的问题。基于安全考虑,各种浏览器缺省都不允许xmlhttprequest跨域名链接,abc.com页面上的xmlhttprequest是无法连接def.com的内容的。在网页中,JSON可以采用引入script元素的方式导入数据,html中的script可以指定非本地脚本,跨域链接的问题得以解决。但使用这样的方式导入JSON数据,是一个同步的过程(是否可以用defer属性来实现异步?),这点上不如xmlhttpreqeust灵活。
------解决方案--------------------
学习强语言, 明白重载之后就明白了。。。