new操作符
相信大家都知道new的作用是通过构造函数来创建一个对象
像下面一样:(和普通函数不一样,当函数用作构造函数时,首字母一般要大写,用来区分)
function Foo(name) {
this.name = name;
}
console.log("new Foo('张三')的类型:", typeof new Foo('张三')); // object
console.log("Foo的类型:", typeof Foo); // function
new都帮我们干了什么:
1 帮我们创建一个空对象
2 执行构造函数中的代码(为这个新对象添加属性)
3 会返还一个新对象
函数继承
// 创建父级对象函数
function A(name,age){
this.name = name.slice(0,1);
this.age = age;
}
// 设置父构造函数的原型对象
A.prototype.say =function(){
// prototype为原型
// .say为父级元素的方法
console.log(this.name)
}
// 创建子构造函数
function B(name,age,gender){
var gender = gender; // 借用父构造函数 继承父构造函数的属性
A.call(this,name,age);
// call更改this指向
}
// 设置继承
B.prototype.say = A.prototype.say;
var b = new B('张三',20,'男');
b.say();
继承函数就是利用父构造函数让子函数继承父函数的属性