论坛首页 Web前端技术论坛

Javascript 对象 (四)

浏览 1109 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-29   最后修改:2008-12-29

函数返回对象

可以用构造函数来创建个对象,也可以通过普通函数返回对象来创建对象

function factory(name){
   return {
     name:name
  };
}

用这个方法创建对象

var o = factory('one');
o.name

让我们接下来看看比较少见的构造函数返回对象的例子

function C(){
  this.a = 1;
  return {b:2};
}

var c2 = new C();
typeof c2.a //undefined
c2.b; // 2

 说明了 并不返回this了 而是返回了对象{b:2}。。这点要注意

 

传递对象

如果传递一个对象到函数里,那么传递的是个引用。如果改变了这个引用,也就会改变原始的对象。

下面是个对象赋值的例子

var original = {name:'nicholas'};
var copy =original;
copy.name;//'nicholas';
copy.name = 'Jason';
original.name;// 'Jason';

 

修改了copy的属性name 也就等于修改了original的属性name

对象传参到函数中,也是同样的。

function modify(o){
   o.name ='Jason'
}
var original={name:'nicholas'};
modify(original);
original.name;//Jason

 

对象的比较

两个对象的比较如果是true的话,那么他们就是同一个对象的引用。

var fido ={breed:'dog'};
var benji ={breed:'dog'};

benji===fido; //false;
benji==fido; //false;

 以上的代码都不是同一引用,所以都是false

论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics