- typeof 操作符
- typeof检测引用数据类型时返回 object;
- typeof 函数的时候返回function
- typeof 基本数据类型的时候返回
- number
- string
- boolean
- 检测 null的时候返回的是object,因为null代表的是一个空对象指针,返回object在逻辑上更便于理解(高程三)
- undefined
- obj instanceof class 运算符:
- 用来检测对象是不是某类的一个实例,返回值是true或者是false
obj.constructor
a(c){ 12345678this.b = c;this.d =function(){alert(this.b);}}var obj = new a('test');alert(typeof obj.prototype);//undefinealert(typeof a.prototype);//objectprototype
- new 运算符做了哪些事情
- var obj = {};也就是说,初始化一个对象obj;obj被Object初始化
- obj.proto = a.prototype : 指向构造函数的prototype属性
- a.call(obj);也就是会所构造obj,也可以称之为初始化obj;
- 原型链的概念:每个对象都会在其内部初始化一个属性,就是proto,当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么它就会去proto里找这个属性,这个proto又会有自己的proto,于是就这样一直找下去。
(来源:博客文章-深入分析js中的constructor和prototype) - a.prototype包含了两个属性
- constructor:当前类的构造函数a
- proto
- new 运算符做了哪些事情