JS中的phototype.png
原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展。我们称B的原型为A。
javascript中的每个对象都有prototype属性
prototype属性:返回对象类型原型的引用
prototype就是“一个给类的对象添加方法的方法”,使用prototype属性,可以给类动态地添加方法
javascript的方法可以分为三类
People.sleep = function(){console.log('I Am Sleeping ...')}
People.sleep()
People.prototype.constructor.sleep
ƒ (){console.log('I Am Sleeping ...')}
People.prototype.constructor.sleep()
I Am Sleeping ...
var p = new People('Jack')
p.__proto__.constructor.sleep()
I Am Sleeping ...
function People(name){
this.name = name;
this.hello = function(){
console.log('Hello,World')
}}
var p = new People('Jack')
p: People {name: "Jack", hello: ƒ}
p.hello
ƒ (){
console.log('Hello,World')
}
typeof p.hello = "function"
p.hello() 输出 Hello,World
p.name 输出 "Jack"
p.__proto__
p.__proto__
{constructor: ƒ}
p.__proto__.constructor
ƒ People(name){
this.name = name;
this.hello = function(){
console.log('Hello,World')
}}
prototype 属性使您有能力向对象添加属性和方法。
function employee(name,job,born){
this.name=name;
this.job=job;
this.born=born;
}
var bill=new employee("Bill Gates","Engineer",1985);
employee.prototype.salary=null;
bill.salary=20000;
console.log(bill.salary);