JS之__proto__和instanceof关键字

JS之__proto__和instanceof关键字

  • proto
    构造函数构造出来的对象,有个属性__proto__ 指向构造出这个对象的构造函数的原型
function Dog({name,type,age}){
   //this = new Object();
   //添加属性
   this.name = name;
   this.type = type;
   this.age = age;
}
/* 
   通过构造函数的原型添加方法
*/
Dog.prototype = {
    run: function(){
        alert(this.name + "会飞快的奔跑");
    },
    showSelf: function(){
        alert(`这是一个${this.type}的,${this.age}岁的,${this.name}叫的小狗`);
    }
}

var xiaobai = new Dog({
   name: "小白",
   type: "拉布拉多",
   age: 3
});
alert(xiaobai.__proto__ == Dog.prototype); // true

var xiaohei= new Dog({
    name: "小黑",
    type: "柴犬",
    age: 5
});
alert(xiaohei.__proto__ == Dog.prototype); // true
alert(xiaobai.__proto__ == xiaobai.__proto__ ); // true
  • instanceof关键字
    判断某个对象是否是这个构造函数构造出来的

语法:object instanceof constructor
object:某个实例对象 constructor:某个构造函数
用来检测 constructor.prototype 是否存在于参数 object 的原型链上。

function Dog({name,type,age}){
    //this = new Object();
    //添加属性
    this.name = name;
    this.type = type;
    this.age = age;
}
 /* 
    通过构造函数的原型添加方法
 */
 Dog.prototype = {
     run: function(){
         alert(this.name + "会飞快的奔跑");
     },
     showSelf: function(){
         alert(`这是一个${this.type}的,${this.age}岁的,${this.name}叫的小狗`);
     }
 }

var xiaobai = new Dog({
    name: "小白",
    type: "拉布拉多",
    age: 3
});
alert(xiaobai instanceof Dog) // true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方求败、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值