JS 对象

本文介绍了JavaScript中使用构造函数和原型模式创建对象的方法,并详细解释了这两种模式下对象的constructor属性及instanceof操作符的表现。

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

function createPerson(name,age,job){
  var o=new Object();
  o.name=name;
  o.age=age;
  o.job=job;
  return o;
}
var p1=createPerson('name',11,'pair');
p1 instanceof createPerson    //返回false
//事实上instanceof 是通过对比该对象的constructor 是否是右边  但是工厂模式创建出来的对象constructor都是object
p1.constructor// 得到function Object() { [native code] }

//构造函数模式
function Person(name,age,job){
  this.name=name;
  this.age=age;
  this.job=job;
  this.introduce=function(){
    alert("My name is "+this.name+", I am"+age+"year(s) old, I am a "+job+".");
  }
}

var p2=new Person('name',11,'emp');
//首先需要知道new的事后都发生了什么  
//new 会返回一个对象  且该对象的_proto_指向Person的Prototype  而Person的原型的constructor就是Person
//所以p2的constructor属性 (等下 p2实例并没有constructor属性啊)  但是它所属类的Person的原型有  于是属性查找到了Person的原型
//显然我们知道类的原型有constructor属性  这个属性指向类(函数)本身
p2.constructor //得到function Person(name,age,job){}
p2 instanceof Person // true



//原型模式
function Pers(){

}

Pers.prototype.name='nico';
Pers.prototype.age=20;
var p3=new Pers();
p3.constructor //function Pers(){}
p3 instanceof Pers //true

参考  http://www.zhihu.com/question/21220141

转载于:https://www.cnblogs.com/cart55free99/p/3765961.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值