JavaScript面向对象的支持(下)
2010-09-14 13:37:33 来源:WEB开发网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"是不相同.
Tags:JavaScript 面向 对象
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接