js-类
1.js中的类并非其他语言的类,只能说是一个伪类。
2.js中的构造函数允许有返回值,返回值会作为对象生成时的表达式返回,同时导致构造函数中的this关键字的指向失效。
3.原型,一个对象的原型就是他的构造函数prototype属性的值,所有的函数都有一个prototype属性,当函数被定义时prototype自动创建跟初始化,prototype属性的初始化值是一个对象,该对象只有一个默认的属性就是constructor,它指回到和原型相关的的那个构造函数。
使用原型对象可以显著的减少每个对象所需要的内存数量,因为对象可以继承原型的很多属性。第二层含义是:即便是在对象创建以后才添加到原型中的属性,对象也可以继承它。这意味着,可以为已有的类添加新的方法。
4.读取与写入继承的属性。读取的时候,首先会在对象中查找该属性,若没有该对象中没有该属性,便会在原型对象中查找该属性,并读取出来。
而写入则不尽相同,它指回把你对象中有的属性值进行改写,但是不会改写原型中的值。因为若是这样便会改写所有相关类的属性值。
5.在js中创建私有类型,则必须在类中定义get,set方法来获得这个私有属性值,注意的是get与set方法不能放在prototype的属性中。
6.内置对象的方法。
6.1toString()这个输出对象的字符串返回值。
6.2valueOf()这个方法当把对象转换为基本类型时会调用该方法。注意的是:
在某些条件下,在把一个对象转换为一个字符串的时候,valueOf()方法可能比toString()方法更悠闲使用。因此,当为类定义一个valueOf()方法的时候,如果要强制类的一个对象转换为字符串,可能需要更现实地调用toString()方法。