WEB开发网
开发学院网页设计JavaScript JavaScript面向对象的支持(下) 阅读

JavaScript面向对象的支持(下)

 2010-09-14 13:37:33 来源:WEB开发网   
核心提示: JavaScript中的函数参数总是传入值参,引用类型(的实例)是作为指针值传入的.因此函数可以随意重写入口变量,而不用担心外部变量被修改.但是,需要留意传入的引用类型的变量,因为对它方法调用和属性读写可能会影响到实例本身.--但,也可以通过引用类型的参数来传出数据.最后补充说明一下,值类

JavaScript中的函数参数总是传入值参,引用类型(的实例)是作为指针值传入的.因此函数可以随意重写入口变量,而不用担心外部变量被修改.但是,需要留意传入的引用类型的变量,因为对它方法调用和属性读写可能会影响到实例本身.--但,也可以通过引用类型的参数来传出数据.

最后补充说明一下,值类型比较会逐字节检测对象实例中的数据,效率低但准确性高;而引用类型只检测实例指针和数据类型,因此效率高而准确性低.如果你需要检测两个引用类型是否真的包含相同的数据,可能你需要尝试把它转换成"字符串值"再来比较.

6. 函数的上下文环境--------只要写过代码,你应该知道变量是有"全局变量"和"局部变量"之分的.绝大多数的JavaScript程序员也知道下面这些概念:

// JavaScript中的全局变量与局部变量var v1 = '全局变量-1';
v2 = '全局变量-2';
function foo() {
 v3 = '全局变量-3';
 var v4 = '
只有在函数内部并使用var定义的,才是局部变量';
}
按照通常对语言的理解来说,不同的代码调用函数,都会拥有一套独立的局部变量。

因此下面这段代码很容易理解:

// JavaScript的局部变量
//---------------------------------------------------------
  function MyObject() {

var o = new Object; this.getValue = function() {
  return o;
 }
}
var obj1 = new MyObject();
var obj2 = new MyObject();
document.writeln(obj1.getValue() == obj2.getValue());

结果显示false,表明不同(实例的方法)调用返回的局部变量"obj1/obj2"是不相同.

上一页  1 2 3 4 5 6 7 8  下一页

Tags:JavaScript 面向 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接