Js高级第一天

面向对象 (js模拟)

面向对象特征:封装,继承,多态
1.对象 instanceof 数据类型 返回布尔值
2.创建对象三种方式回顾
3.console.dir(对象)   查看其内部结构
//说明:通过看其内部结构:在对象的__proto__中,有一个constructor构造器,指向其构造函数
//结论:实例对象就是通过构造函数创建出来的
//console.log(p1__proto__.constructor==Person);//true
// console.log(Person == Person.prototype.constructor); //true
//console.log(p1.__proto__ == Person.prototype); //true
 // console.log(p1.__proto__ == Person.prototype); //true
//1. 自定义的构造函数
    function Person(name, age) {
        this.name = name;
        this.age = age;
    }

    //2. 在构造函数的原型对象上添加方法
    Person.prototype.eat = function () {
        console.log("吃饭");
    };

    var p1 = new Person("小明", 12);
    var p2 = new Person("小红", 12);

    console.log(p1.eat == p2.eat); //false
    console.dir(p1);
    console.dir(p2);
    // 根据内部结构, 通过以下方式来调用, 不标准
    p1.__proto__.eat();
    p2.__proto__.eat();
    //标准写法
    p2.eat();

    //判断两个原型是否相等
    console.log(p1.__proto__ == Person.prototype); //true



//说明: document 既是属性, 也是对象
//     window.document  // document 是属性
//     document.write(); // document 是对象
    // Person.prototype  // prototype 是属性
    // Person.prototype.eat  // prototype 是对象

    /*
    结论 :
    * prototype : 是构造函数的属性, 也是原型对象, 是给程序员使用的, 是标准的
    *
    * __proto__ : 是实例对象的属性, 也是原型对象, 给浏览器来使用的, 不标准
    *
    * prototype 等于 __proto__
    *
    * 在原型对象上添加方法, 共享数据, 节省空间
    *
    *
    * */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值