1. 基本概念: “原型属性”也可以叫做“原型”(prototype):所有函数都有prototype,我觉得可以理解为python中的类属性,不需要通过实例,直接用类(es5就是函数名)可以调用,下面列举了三种创建函数的方法,函数创建后都有prototype属性,prototype指向“原型对象” ...
分类:
其他好文 时间:
2019-01-07 21:29:25
阅读次数:
123
一、了解继承 1.1 继承就是后辈继承前辈的属性和方法 1.2 面向对象编程(OOP) JavaScript不是面向对象编程语言, 但是它的特性支持面向对象的编程思维。 二、继承的方法 1 从父类继承属性和方法 对象冒充, 模仿java中的继承对象冒充, 模仿java中的继承。通过改变 ...
分类:
Web程序 时间:
2019-01-06 13:37:49
阅读次数:
215
每个实例和实例之间都是独立的个体,他们之间的属性互不干扰,是不等的,如果实例和实例之间的属性相等,则这个属性必须是父类的原型上的属性。是因为父类原型上的属性是可继承的,是共享的。 在操作obj.属性的时候,首先看这个属性是私有的还是从父类的原型上继承的,如果是私有的直接使用,如果私有的没有呢就查看父 ...
分类:
其他好文 时间:
2019-01-04 17:14:12
阅读次数:
182
之前面试的时候遇到过原型和原型链方面的题目,具体的已经忘了,只记得当时回答的稀里糊涂,今天查了一些资料,把自己所理解的写出来,加深记忆。 1,前提 在js中,对象都有__proto__属性,一般这个是被称为隐式的原型,该隐式原型指向构造该对象的构造函数的原型。 函数比较特殊,它除了和其他对象一样有_ ...
分类:
Web程序 时间:
2019-01-04 14:41:58
阅读次数:
176
面向对象(2) 原型 原型链的理解 1.面向对象的目的就是生成对象object。 2.生成对象的方式 (1)单例模式(字面量定义)var obj={} (2)类的实例 var obj=new Object() (3)工厂模式 (4)构造函数 工厂模式和构造函数的区别? 工厂模式,生成的对象必须要返回 ...
分类:
其他好文 时间:
2019-01-03 17:31:58
阅读次数:
195
(1)typeof 和 instanceof 1、typeof 对于基本数据类型(boolean、null、undefined、number、string、symbol)来说,除了 null 都可以显示正确的类型;对于对象来说,除了函数都会显示 object。 2、instanceof 是通过原型链 ...
分类:
编程语言 时间:
2019-01-02 15:09:52
阅读次数:
217
1:单例模式实现 //data类,director类实现, 2:静态方法实现 //精灵类 3:ES6面向对象,类本身是一个函数,方法和属性作为原型链的方法存在的。 4:ES5面向对象,ES6面向对象 ES5继承实现(寄生组合继承)//调用一个对象的方法,用call,apply来用另一个对象替换 // ...
分类:
微信 时间:
2019-01-02 12:28:03
阅读次数:
239
上一篇博客中,我们介绍了JS中的面向对象,并详细的解释了this的指向问题。本篇博客,我们继续来学习JS的面向对象。来深入理解一下JavaScript OOP中的成员属性/方法、静态属性/方法、原型属性/方法,并且一起来探讨一下JS中的原型与原型链。 ...
分类:
编程语言 时间:
2019-01-02 10:43:26
阅读次数:
171
JS继承的实现方式 既然要实现继承,那么首先我们得有一个父类,代码如下: 1、原型链继承 核心: 将父类的实例作为子类的原型 特点: 缺点: 2、构造继承 核心:使用父类的构造函数来增强子类实例,等于是复制父类的实例属性给子类(没用到原型) 特点: 缺点: 3、实例继承 核心:为父类实例添加新特性, ...
分类:
其他好文 时间:
2019-01-01 19:57:02
阅读次数:
185
前言 this 指向问题是入坑前端必须了解知识点,现在迎来了ES6时代,因为箭头函数的出现,所以感觉有必要对 this 问题梳理一下,遂有此文 在非箭头函数下, this 指向调用其所在函数的对象,而且是离谁近就是指向谁(此对于常规对象,原型链, getter & setter等都适用);构造函数下 ...
分类:
Web程序 时间:
2019-01-01 17:15:24
阅读次数:
216