Javascript 对象 (四)

本文介绍了使用函数创建对象的方法,包括通过构造函数和普通函数返回对象。探讨了构造函数返回对象时的特殊行为,并讨论了对象传递时的引用特性及如何在函数内部修改外部对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数返回对象

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值