面向对象

听完面向对象之后感觉还是好多地方需要消化消化。
面向对象的特点:封装、继承、多态

一、原型对象的用途是为每个实例对象存储共享的方法和属性;所有的实例是共享同一个原型对象,因此有别于实例方法或属性,原型对象仅有一份。

在js中,对象在调用一个方法时会首先在自身里寻找是否有该方法,若没有,则去原型链上去寻找,依次层层递进,这里的原型链就是实例对象的proto属性。

构造函数,构造函数里面没有任何语句,也就是说,这个构造函数在执行的时候,不会给创建出来的对象添加任何属性。

    function People(){
    
    }
    构造函数的原型,我们更改了构造函数的原型,为一个新的对象:
    People.prototype = {
        name : "考拉",
        sex : "男",
        age : 18
    }
    
当一个对象被new出来的时候,不仅仅执行了构造函数里面的语句,也会把这个函数的__proto__指向构造函数的prototype。
    var xiaoming = new People();
    
console.log(xiaoming.__proto__);
    console.log(xiaoming.__proto__ == People.prototype);    
    当我们试图访问name、sex、age属性的时候,身上没有。那么就去查找原型,原型身上有,就当做了自己的属性返回了。
    console.log(xiaoming.name);
    console.log(xiaoming.sex);
    console.log(xiaoming.age);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容