一、什么叫做构造函数
-
一般规则
-
调用方法
-
举个例子
1、一般规则
构造函数都应该以 一个大写字母开头,eg: function Person(){…}
而非构造函数则应该以一个小写字母开头,eg: function person(){…}2、调用方法 任何函数,只要通过 new 操作符来调用,那它就可以作为构造函数 ; 任何函数,如果不通过 new 操作符来调用,那它跟普通函数也没有什么两样。
3、举个栗子~
function Person(name,age){this.name=name;
this.age=age;
this.say=function(){
console.log(‘早上好’+name)
}
}
//当做构造函数
var jone=new Person(‘mingming’,12);
jone.say()
//当做普通函数
Person(‘mingming’,12);
window.say()
二、为什么要用原型对象
原型对象
如同上述例子中创建了Person这个构造函数、没创建一个Person构造函数,为每一个对象就会添加一个say的方法。这样就导致了构造函数执行一次就会创建一个新的方法,执行10000次就会创建10000个新的方法,而10000个方法都是一摸一样的,为什么不把这个方法单独放到一个地方,并让所有的实例都可以访问到呢?这就需要原型(prototype)
三、简析原型链
四、插入一段练习的代码
实例的人——人的原型对象——Object的原型对象
.
// An highlighted block
var foo = 'bar';
<script>
function Person(name){
this.name=name
}
Person.prototype.age=function age(myage){
console.log('我是'+this.name+'我的年龄是'+myage)
}
var person1 = new Person('hello')
person1.age('28')
console.log(person1)
console.log(Person.prototype===person1.__proto__)
console.log(person1.__proto__.__proto__.__proto__)
</script>