Vue源码分析之构建
Vue.js 源码是基于 Rollup 构建的,它的构建相关配置都在 scripts 目录下。
通常一个基于 NPM 的项目都会有一个 package.json 文件,它是对项目的描述文件,它的内容实际上是一个标准的 JSON 对象。此类项目通常会配置 script 字段作为 NPM 的执行脚本。
通常一个基于 NPM 的项目都会有一个 package.json 文件,它是对项目的描述文件,它的内容实际上是一个标准的 JSON 对象。此类项目通常会配置 script 字段作为 NPM 的执行脚本。
这个系列的第一部分,主要介绍了如何”封装”数据和方法,以及如何从原型对象生成实例。
今天要介绍的是,对象之间的”继承”的五种方法。
比如,现在有一个”动物”对象的构造函数。
1 |
|
Javascript是一种基于对象的语言,所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。
那么,如果我们要把”属性”(property)和”方法”(method),封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做呢?
this是 JavaScript 语言的一个关键字,是函数生成时,在函数内部自动生成的指向函数作用域的指针。1
2
3function test() {
this.a = 1;
}
要理解闭包,首先必须理解Javascript特殊的变量作用域,变量的作用域有两种:全局变量和局部变量。
Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。1
2
3
4
5
6
7 var a=111;
function a1(){
alert(a);
}
a1(); // 111
另一方面,在函数外部无法读取函数内的局部变量。1
2
3
4
5
6function a1(){
var a=999;
}
alert(a); // a is not defined
这里有一个地方需要注意,函数内部声明变量的时候,一定要使用let命令。如果不用的话,实际上声明了一个全局变量!1
2
3
4
5
6
7function a1(){
a=111;
}
a1();
alert(a); // 111