面向对象的prototype

Posted 微笑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象的prototype相关的知识,希望对你有一定的参考价值。

  function Cat(){
            this.name=‘小白‘;
        }
        Cat.prototype.color=‘white‘;
        Cat.prototype.skill=function(){
            alert(‘吃鱼‘);
        }
        var cat1=new Cat();
        console.log(cat1.name);//小白
        console.log(Cat.prototype);//object
        console.log(cat1.prototype);//undefined
        console.log(cat1 instanceof Cat);//true
        console.log(cat1 instanceof Object);//true
        var obj=new Object();
        Object.prototype.abc=‘123‘;
        var str=‘abcd‘;
        var arr=[‘1‘,‘2‘,‘3‘];
        console.log(str.abc);//123
        console.log(arr.abc);//123
        String.prototype.len=function(){
            return this.length;
        }
        alert(str.len());
        console.log(str.__proto__);//String
    
    console.log(str.constructor);// String

     console.log(str.constructor.prototype.constructor);// String


        console.log(str.__proto__.__proto__);//Object
        Date.prototype.getWeek=function(){
            var arr=[‘周末‘,‘周一‘,‘周二‘,‘周三‘,‘周四‘,‘周五‘,‘周六‘];
            var index=this.getDay();//0-6
            return arr[index];
        }
        var date=new Date();
        console.log(date.getWeek());//周六
Array.prototype.quchong=function (){
        var arr=[];
        this.sort(function (a,b){return a-b;});
        for (var i = 0; i < this.length; i++) {
            if (this[i]==this[i+1]) {
                continue;
            };
            arr.push(this[i]);
        };
        return arr;
    }
    var arr1=[12,45,7,12,75,45,5,32,12];
    console.log(arr1.quchong());
function fn1(){
            var x=5;
            x++;
            alert(x);
        }
        fn1();//6
        fn1();//6
        fn1();//6
        fn1();//6
        function fn2(){
            var x=5;
            function fn3(){
                x++;
                alert(x);
            }
            return fn3;
        }
        var fn=fn2();
        fn();//6
        fn();//7
        fn();//8
        fn();//9

 



以上是关于面向对象的prototype的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript中的面向对象编程,详解原型对象及prototype,constructor,proto,内含面向对象编程详细案例(烟花案例)

JS面向对象组织代码

js面向对象-prototype

面向对象的prototype

深入理解js面向对象中的prototype

prototype