js高级(三)

console 中dir与log的区别

  • log语句打印的是结果,直接显示信息;
  • dir语句打印的是内容,对显示对象的所有属性和方法。

原型与原型链

Object是系统的构造函数,里面就应该有prototype,又是对象,对象里面就应该有__proto__,最终的这个一定会指向null

原型链:是实例对象和原型对象之间的关系,是__proto__原型来链接的

  • 实例对象有__proto__原型

  • 构造函数有prototype原型

  • prototype是对象,那么也有__proto__原型

改变原型指向

假设有两个对象Person,Student

改变原型指向只需要把改对象的prototype修改即可,例如:

Person.prototype = {
    play:function () {
        console.log(this);
    }
}

这样便把Person的原型修改为了一个有play方法的对象

继承

直接将对象的Prototype 指向一个实例对象或对象来继承属性与方法

 为了数据共享,改变了原型指向,做到了继承,但是继承过来的属性值也是一样的

解决:继承的时候不要改变原型的指向,直接调用父级的构造函数的方式来赋值,叫借用构造函数

借用构造函数

在对象里面赋值时,可以直接将父亲的构造函数借用过来用 call方法

function Student(score, name, money, house) {
    this.score = score;
    // 把父亲的构造函数借过来--->改变构造函数的之乡,继承属性
    Person.call(this, name, money, house);
    // this指的是当前函数所创建出来的对象
    // 后面的参数是父亲的形参,这个形参Student要用,所以需要Student的构造函数的小括号接收一下
}

这种方法 的name,maney,house都是利用Person对象的方法来赋值的

总结:

    原型继承:改变原型的指向
    借用构造函数继承:改变构造函数属性的指向
    组合继承:原型继承 + 借用构造函数继承,既能解决属性问题,又能解决方法问题
    拷贝继承:就是把对象中需要共享的属性和方法,以遍历的方式复制到另一个对象

**注意区分属性与方法

拷贝继承

拷贝继承:就是把对象中需要共享的属性和方法,以遍历的方式复制到另一个对象

var obj2 = {};

        for(var key in Person.prototype) {

            obj2[key] = Person.prototype[key];

        }

this指向

  • 普通函数的this指向:window
  • 构造函数的this指向:实例对象
  • 对象和方法中的this指向:当前实例对象
  • 定时器中的this指向:window
  • 原型对象方法中的this指向:实例对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JavaScript高级程序设计(第3版)》是一本权威的JavaScript编程指南,涵盖了JavaScript语言的各个方面和高级特性。本书由Nicholas C. Zakas撰写,是一位知名的JavaScript专家和作者。 该书详细介绍了JavaScript的基本语法、数据类型、控制流程等基础知识,并深入探讨了函数、对象、正则表达式等高级特性。此外,本书还介绍了DOM操作、事件处理、Ajax、JSON等Web开发相关的内容。读者可以通过学习本书,系统地掌握JavaScript的各个方面,从而能够编写出可维护、高效、优雅的JavaScript代码。 《JavaScript高级程序设计(第3版)》以清晰、易懂的语言讲解了复杂的概念,并配有丰富的示例代码和实际案例,帮助读者理解和应用所学知识。本书不仅适合初学者,也适合有一定JavaScript基础的开发者作为参考手册使用。 随着Web技术的快速发展,JavaScript已经成为构建现代Web应用的重要工具之一。《JavaScript高级程序设计(第3版)》为读者提供了全面、深入的学习和理解JavaScript的资源。无论是对于Web开发者还是对于想要了解JavaScript的任何人来说,这本书都是一本不可或缺的经典之作。 总之,《JavaScript高级程序设计(第3版)》是一本内容丰富、权威性强的JavaScript编程指南,它深入讲解了JavaScript的各个方面和高级特性,对于理解和应用JavaScript具有很高的参考价值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

WA终结者

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

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

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

打赏作者

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

抵扣说明:

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

余额充值