理解js中的原型继承

为了搞清在js中如何实现继承,也是对之前这篇博文js中prototype用法的补充,我主要参考了下面两篇文章:

伯乐在线的JavaScript原型和继承

阮一峰的构造函数的继承

我是两篇对比着看的,刚开始看的时候脑袋都快被绕晕了,或许是自己对于js的高级特性不熟悉,亦或是js本身语言的强大灵活性与传统的编译性语言区别太大的原因导致,所以此次的学习笔记决定‘从简’,为了不搞混淆,只把我觉得易懂的部分给抽出来,方便以后查阅。

Read More

解惑js中的prototype

平时node中在人家源码里往往会看到prototype,之前百度了下说的是原型方法,也没有细看,今天决定好好把这块知识点学习一下。结合网上的资料,把prototype的定义精简一下:js中每个函数都有一个默认的prototype属性,这个属性是另一个对象(我们称之为‘原型对象’)的引用,换句话说,其实prototype属性就是一个对象。这个原型对象的所有属性和方法,都会被构造函数的实例继承。

说了定义,那我们来看什么时候使用prototype呢?这篇博文对这部分讲的很清楚。按照他的例子举个例,在传统的实例化出来的对象要使用属性或方法时,我们事先是这样构造一个‘类’(为了好理解暂叫类吧):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function Student(){
this.friends = []; //实例变量
this.read=function(){ //实例方法
var bookName = '代码与艺术';
console.log('我要读' + bookName);
}
}

var fengyun = new Student();
fengyun.friends.push('lauchunpung');
fengyun.read();
console.log(fengyun.friends); //['lauchunpung']

var andy = new Student();
andy.friends.push('zhuliqian');
andy.read();
console.log(andy.friends); //['zhuliqian']

Read More

学习js中的this用法

通过这几个月在node.js上的工作,发现js其实并不是那么简单,而且感觉上越来越深,比如现在要笔记的一个坑——this,因为之前用过C++对this有一定的了解,其就是指向当前对象,而javascript中的this,因其弱语言的灵活性,它被赋予了更多的作用和使用范围。由于其运行期绑定的特性,它可以是全局对象、当前对象或者任意对象,这完全取决于函数的调用方式,下面根据网上的文章作了一个归纳,方便日后温习。

一般而言,在Javascript中,this指向函数执行时的当前对象,该关键字在Javascript中的执行环境,而非声明环境有关。

##1.作为单纯的函数调用

1
2
3
4
5
function modifyName(name) {
this.name = name;
}
modifyName('fengyun');
console.log(name);

Read More

小结正则表达式

我觉得正则表达式在字符串查找界中绝对算的上是‘鬼斧神工’,它犀利的地方就是其无与伦比的匹配奇效,会为你节省太多的开发时间,而另一面就是一种你自己写完过后,再过几天回头看来心里绝对会想:“我当时写的这一串东西是什么鬼?!”特别是对于我这种不是经常写正则的人。所以今天把这个知识点的书写流程归纳一下,以备不时之需,另外,文章里面涉及的图片均来自于慕课网的正则教程。

Read More