-
原型和原型链
方式:1.万物皆对象,万物皆空
2.两个定义:原型:保存所有子对象的共有属性值和方法的父对象
原型链:由各级子对象的__proto__属性连续引用行成的结构
3.三个属性:__proto__,constructor,prototype
当函数创建的时候就会携带上一个prototype属性,这个属性指向prototype对象,也就是原型对象
原型对象携带constrcuctor
实例化会携带__proto__,并且是所有js对象都会携带,都是js内部属性
挂载在函数内部的方法,实例化对象内部回复制构造函数的方法
挂载在原型上的方法,不会去复制.
挂载在内部和原型上的方法都是可以通过实例去调用的
一般来说,如果需要访问构造函数内部的私有变量,我们可以定义在函数内部,其它情况我们可以定义在函数的原型上
总结
1.所有对象都会携带p1.__proto__,p1.__proto__===Person.prototype
2.Person.prototype.constructor===Person
查看全部 -
什么是对象?
具备私有属性
只要是new出来的都是对象
不同对象肯定不相等
对象都会有引用机制 堆栈
Js中晚物皆对象 Array Date Object Function String.....
面向对象:(可以说是初级和中级的一个分水岭)
把任何的数据和行为抽象成一个形象的对象,类似于人生活中思考的方式
类:对象(Object)的模版,定义了同一组对象(又称"实例")共有的属性和方法
面向对象OOP:封装 继承 多态
继承:子继承父
封装:方法 run :function(){}
多态:重载,重写
查看全部 -
Js多参数方法。查看全部
-
js面向对象OOP
继承 子继承父
封装 方法run:function(){}
多态:重载 重写
查看全部 -
毒贩夫妇付付付付付付付付付付付付付付
查看全部 -
到付到付付付付付付付付付付付付付付付付付付付付付付付付付付
查看全部 -
总结:
算法 数据结构 设计模式
查看全部 -
Object.defineProperty()方法
应用场景、
Object.defineProperty(obj,prop,descriptor)
obj:需要定义属性的对象
prop:需要定义的属性
descriptor:属性的描述描述符
返回值:返回此对象
查看全部 -
继承:子继承父
JS继承的方式6种:
简单原型链:类式继承
借用构造函数:缺点=>父类的原型方法自然不会被子类继承
组合继承(最常用):类式继承+构造函数继承
寄生组合继承(最佳方式):寄生式继承+构造函数式继承
原型式:跟类式继承一样,父类对象book中的值类型的属性被赋值,引用类型的属性被共有
寄生式:通过在一个函数内的过度对象实现继承并返回新对象的方式
查看全部 -
原型相关的API判断对象的属性是自有的还是私有的;hasOwnProperty、isPrototypeOf、getPrototypeOf
hasOwnProerty:obj.hasOwnProperty('属性名') // 判断这个属性是不是这个对象的私有属性,返回布尔值
isPrototypeOf:是用来判断指定对象obj1是否存在于另一个对象obj2的原型链中,是则返回true,否则返回false
getPrototypeOf:是ES5中用来得到obj对象的原型对象的标准方法
查看全部 -
构造函数构建类
函数对象
定义:主要是通过Function对象创建的
普通对象
定义:主要是通过object对象创建的
通过构造函数创建对象
什么是原型,什么是原型链。 __proto__、prototype、constructor
原型和原型链
方式:1,2,3
1:一句话 万物皆对象,万物皆空
2: 二个定义:原型:保存所有子对象的共有属性值和方法的父对象、
原型链:由各级子对象的__proto__属性连续引用形成的结构
3:三个属性:__proto__、constructor、prototype
挂载在函数内部的方法,实例化对象内部会复制构造函数的方法
挂载在原型上的方法,不会去复制。
挂载在内部和原型上的方法都是可以通过实例去调用的
一般来说,如果需要访问构造函数内部的私有变量,我们可以定义在函数内部,其他情况我们可以定义在函数的原型上
总结:
1、所有对象都会携带p1.__proto__
2、实例的原型指向构造函数的原型
查看全部 -
this 坑
this用法:
1、 指代当前调用的这个对象:4种绑定规则分别是:默认绑定、隐式绑定、显示绑定、new绑定。优先级从低到高。
this 指向
如果出现函数套函数,可以使用变量缓存this使用
改变this指向
查看全部 -
new 的执行过程
1 创建一个新对象
2 把obj的proto指向构造函数的prototype对象 实现继承
3 将新创建的对象obj作为this的上下文
4 返回创建的对象obj(如果该函数没有返回对象,则返回this)
查看全部 -
类数组转数组 slice function
var arr =Array.prototype.slice.apply(arguments) // arguments
bind : 类似call 但是与其不同的是call调用之后可以立即执行,但是bind需要用一个变量进行接收之后再执行
查看全部 -
闭包的概念:
作用域,1.是引用了自由变量的函数这个被引用的自由变量将和这个函数异同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和其相关的引用环境组合而成实现信息的驻留(信息的保持,引用在,空间不销毁)
// ++ 前加取新值,后加取旧值
闭包的缺点:闭包导致内存会驻留,如果是大量对象的闭包环境注意内存消耗
闭包的使用:
查看全部
举报