1. 原型链继承 2,构造函数继承(对象冒充继承) 3,组合继承(原型链继承+构造函数继承) 4,原型式继承 5. 寄生组合式继承 一。原型链继承 二。构造函数继承(对象冒充继承) 为了解决引用共享和超类型无法传参的问题,我们采用一种叫借用构造函数的技术,或者成为对象冒充(伪造对象、经典继承)的技术 ...
分类:
Web程序 时间:
2019-06-28 00:25:03
阅读次数:
161
var 对象=new 函数; 对象.__proto__===函数.prototype; object.__proto__===Function.prototype; function.__proto__===Function.prototype; Object.prototype.__proto__... ...
分类:
其他好文 时间:
2019-06-27 16:23:40
阅读次数:
90
作用域链与原型链的区别 作用域: 作用域是针对变量的,比如创建了一个函数,函数里面又包含了一个函数,那么现在就有三个作用域 全局作用域==>函数1作用域==>函数2作用域 作用域的特点就是,先在自己的变量范围中查找,如果找不到,就会沿着作用域往上找。 最后打印的结果是3,因为执行函数c( )的时候, ...
分类:
编程语言 时间:
2019-06-20 15:35:30
阅读次数:
92
new 一个对象 1、创建一个空对象 2、让Person中的this指向obj,并执行Person的函数体 3、设置原型链,将obj的__proto__成员指向了Person函数对象的prototype成员对象 4、判断Person的返回值类型,如果是值类型,返回obj。如果是引用类型,就返回这个引 ...
分类:
编程语言 时间:
2019-06-11 19:30:25
阅读次数:
186
原型和原型链,两个类之间实现继承 组合继承(原型继承+构造函数继承,既能解决属性问题又能解决方法问题) function Person(name,age){ this.name = name; this.age = age; } Person.prototype.play = function(){ ...
分类:
其他好文 时间:
2019-06-11 11:25:39
阅读次数:
111
基本原理 js函数在执行时,系统会创建一个隐式的属性scope,scope中存储的是函数的作用域链. 通过对这个scope的分析,就能解释JavaScript中许多难以理解的问题: scope属性是在函数执行时创建,如果这个函数是一个全局函数,他的scope里会保存一个Global object和一 ...
分类:
Web程序 时间:
2019-06-09 22:13:32
阅读次数:
107
创建对象的几种常用方式 1.使用Object或对象字面量创建对象 2.工厂模式创建对象 3.构造函数模式创建对象 4.原型模式创建对象 1.使用Object或对象字面量创建对象 JS中最基本创建对象的方式: 这样,一个student对象就创建完毕,拥有2个属性name以及age,分别赋值为"easy ...
分类:
编程语言 时间:
2019-06-04 22:08:39
阅读次数:
125
在上面的章节中我们看到了JavaScript的对象模型是基于原型实现的,特点是简单,缺点是理解起来比传统的类-实例模型要困难,最大的缺点是继承的实现需要编写大量代码,并且需要正确实现原型链。 有没有更简单的写法?有! 新的关键字class从ES6开始正式被引入到JavaScript中。class的目 ...
分类:
编程语言 时间:
2019-06-02 18:14:06
阅读次数:
141
一:题目 原型和原型链是js中比较难理解的知识点,咱们先来看几个题目 1.如何准确判断一个变量是数组类型/函数类型/对象类型? 2.写一个原型链继承的例子?(动物除外) 3.描述new一个对象的过程? 如果有缘分看到这篇文章,对这三个不是很清楚的同学请继续看下去,如果是大牛请直接跳过。 二:知识点 ...
分类:
Web程序 时间:
2019-06-02 16:22:19
阅读次数:
149
什么是原型? 声明函数时 js会自动在你声明的函数对象(js一切皆对象)上挂载一些方法和属性 其中prototype属性就是 原型(也称为原型对象) 如下图: 这个原型对象里面保存着 constructor 自己的函数体(也就是Pro.prototype.constructor) 看下图就应该知道了 ...
分类:
其他好文 时间:
2019-05-30 13:20:53
阅读次数:
144