渡一领跑计划-春季班
507报道
构造函数的内部原理
自定义的构造函数与函数无差别
因此使用大驼峰式命名法来区分构造函数与函数
构造函数必须使用new 才会产生对象。
定义一个构造函数
function Fn(){
}
var fn = new Fn();
在使用new定义构造函数时,函数内部最前面会隐式的加上:
this = {
this.xxx = xxx;
};
然后在函数内部最后隐式的返回this --return this;
包装类
原始值没有属性和方法,有new绝对不会有原始值。但是经过包装类后能调用生成数字对象、字符串对象和布尔对象
new number()
new string()
new boolean()
例:
var num = 1;
num.len = 3;
//数字型没有对象,隐式的给它调用
//new Number(1),len = 3 然后 delete 删除
console.log(num.len)
//控制台打印 undefined
undefined和null不能被设置为对象
原型
原型是函数对象的一个属性
prototype
定义了构造函数制造出的对象的公有祖先,原型也是一个对象,通过该构造函数产生的对象,可以继承该原型的属性和方法。
Father.prototype.lastName = ’ forefather’;
function Father(){ this.name='offspring ';}
var father = new Father();
console.log(father.name);//offspring
console.log(father.lastName);//forefather
查看对象的构造函数
constructor 构造器
father.constructor
查看对象原型
下划线proto下划线()
原型链
把原型连成链
原型上+原型+原型
其访问顺序与作用域相同