1.在js中构建对象的方法有两种
1.1对象字面量
var dong={
name:'dongli',
age:'22'
}
1.2使用构造函数
function dong(){
this.name='dongli',
this.age='22'
}
当需要构建的函数较少时,可以直接使用对象字面量,但当我们需要构建大量对象时,第一种方法显然有一些笨拙和重复了,这时候就可以使用构造函数了!!
2.原型
上面我们提到了构建对象的两种方法,相信大家还有印象,(废话,智障博主吗???好好好,不要着急,年轻人)
无论我们通过哪种方法构建的函数都会自动添加prototype和_proto_属性.这哥俩记录了对象的方法和属性(看不懂不要紧,马上就会明白了??)
有人就问了,丫的这哥俩到底是干嘛的呢???
那谁!!把刀放下,我说还不行吗!!
prototype是一个隐式属性,直接调用不到
function f(){}
f.prototype.foo = "abc";
console.log(f.foo); //undefined
那么prototype到底怎么用呢
其实prototype说到底是在继承的时候用的,通俗来说就是留给他的后代用的,自己不可调用(就好像你爸买房真的是给自己住的吗,不是那是给你买的!!嗯~~真是太机智了这个比喻)
那么后代是如何继承腹肌的原型的呢,就是通过原型链_proto_
function f(){}
f.prototype.foo = "abc";
var obj = new f();
console.log(obj.foo); //abc
当new一个构造函数时,实际上执行了如下操作
1.新建一个对象
2.拷贝(链接)父级对象的prototype到新建的对象中
3.将这个函数通过this关键字传递到构造函数中并执行构造函数
4.把这个变量赋值给定义的变量
今天就讲到这里了,更多的东西一时间也没有想到,脑子里就想到这些东西,等我想到更多会给大家补上!!
这是个不靠谱的博主~~~~