分类 JavaScript 下的文章

怎么理解js的原型链继承?

前言了解java等面向对象语言的童鞋应该知道。面向对象的三大特性就是:封装,继承,多态。今天,我们就来聊一聊继承。但是,注意,我们现在说的是js的继承。在js的es6语法出来之前,我们想实现js的继承关系,需要借助于原型链。之前的文章,我有讲过原型和原型链的概念。在这,再重新回顾一下。js中万物皆对象,每个对象都有一个隐式原型 __proto__ ,指向创建它的构造函数的原型对象。函数(构造... 阅读全文->

js中call、apply和bind到底有什么区别?

介绍在js中,每个函数的原型都指向Function.prototype对象(js基于原型链的继承)。因此,每个函数都会有apply,call,和bind方法,这些方法继承于Function。它们的作用是一样的,都是用来改变函数中this的指向。使用方法apply的用法可以表示如下:A.apply(B, [x, y, z]);此方法可以改变函数A的this指向,使之指向函数B。第二个参数传的是... 阅读全文->

JavaScript中的原型prototype和__proto__的区别及原型链概念

问题初学js的同学,总是搞不清楚js中的原型是什么东西,看着控制台打印出来的一串串__proto__,迷惑不已。例如我定义一个Person,创建一个实例p,并打印实例。function Person(){} var p = new Person(); console.log(p)图中,打印出来一个Person的实例对象p,这个对象有个__proto__ 属性,这个是什么东西?__proto_... 阅读全文->