java cunstructor_JavaScript 面向对象的常用方法、属性总结

person1.cunstructor == Person:构造函数的实例的指向 (true/false)

person1 instanceof Object:检测对象类型是否属于object(true/false)

person1 instanceof Person:检测对象类型是否属于构造函数(true/false)

var arr = [];

arr instanceof Array:(true) //标识数组

1、标识构造函数对象实例的类型

对象实例.constructor == 构造函数对象

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 function Person(name, age, job){

2 this.name = name;

3 this.age = age;

4 this.job = job;

5 this.sayName = function(){

6 alert(this.name);

7 };

8 }

9 var person1 = new Person("Nicholas", 29, "Software Engineer");

10 var person2 = new Person("Greg", 27, "Doctor");

构造函数源码

在前面例子的最后,person1 和 person2 分别保存着 Person 的一个不同的实例。这两个对象都有一个 constructor(构造函数)属性,该属性指向 Person,如下所示。

1 alert(person1.constructor == Person); //true

2 alert(person2.constructor == Person); //true

对象实例 instanceof 对象

提到检测对象类型 instanceof 操作符更可靠,我们创建的所有对象既是object实例也是构造函数的实例。可以使用instanceof来验证

1 alert(person1 instanceof Object); //true

2 alert(person1 instanceof Person); //true

3 alert(person2 instanceof Object); //true

4 alert(person2 instanceof Person); //true

创建自定义的构造函数意味着将来可以将它的实例标识为一种特定的类型;而这正是构造函数模式胜过工厂模式的地方。验证new操作符的实例对象和传统object创建方式的类型归属:

var obj = {

name:'s',

age:'s',

sex:'男'

}

alert(obj instanceof Object); // true

alert(obj instanceof Person); // false

//字面量方式创建的对象obj只属于object,并不属于其他对象,更没有办法让他具有特定类型。对比看来是不是构造函数的方式好的很多。

标签:instanceof,Person,JavaScript,alert,面向对象,person1,属性,true,构造函数

来源: https://www.cnblogs.com/wangweizhang/p/10376318.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值