js小知识

call 、bind 、 apply 这三个函数的第一个参数都是 this 的指向对象,第二个参数差别就来了:

call 的参数是直接放进去的,第二第三第 n 个参数全都用逗号分隔,直接放到后面 obj.myFun.call(db,'成都', ... ,'string' )。

apply 的所有参数都必须放在一个数组里面传进去 obj.myFun.apply(db,['成都', ..., 'string' ])。

bind 除了返回是函数以外,它 的参数和 call 一样。

当然,三者的参数不限定是 string 类型,允许是各种类型,包括函数 、 object 等等!

所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法:

Date 对象从 Date.prototype 继承。

Array 对象从 Array.prototype 继承。

Person 对象从 Person.prototype 继承。

所有 JavaScript 中的对象都是位于原型链顶端的 Object 的实例。

JavaScript 对象有一个指向一个原型对象的链。当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾。

Date 对象, Array 对象, 以及 Person 对象从 Object.prototype 继承。

添加属性和方法

有的时候我们想要在所有已经存在的对象添加新的属性或方法。

另外,有时候我们想要在对象的构造函数中添加属性或方法。

使用 prototype 属性就可以给对象的构造函数添加新的属性:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、js的基本类型有哪些?引用类型有哪些?null和undefined的区别?1、基本类型Number,Strin...
    林立镇阅读 825评论 0 18
  • js 构造函数 目前最流行的自定义 先说一下构造函数执行过程new 的作用创建一个对象,将函数作用域赋予这个的对象...
    bd6b5cde5ce9阅读 234评论 0 1
  • 前言:构造函数、原型对象、实例 每创建一个构造函数,该函数就会自动带有一个prototype属性,该属性是个指针,...
    琴先森的博客阅读 338评论 0 1
  • 1. call、apply和bind的区别 call、apply和bind方法都是函数对象中的方法,用来动态地改变...
    assassian_zj阅读 149评论 0 0
  • 1.作用域 局部作用域:函数内部就是局部作用域。 ①在局部作用域申明的变量称为局部变量,局部变量只能在当前函数内部...
    沃德麻鸭阅读 2,548评论 0 4