js之prototype

           在JavaScript中,prototype对象是js实现面向对象的重要机制。

           每一个函数对象都有一个prototype属性,这个属性是指向对象的引用,称之为原型对象。原型对象相当于函数对象的影像,它会把函数对象的属性和方法复制一份。供new构造对象共享这份影像。使用new时浏览器会给对象加上一个_proto_属性指向prototype对象。首相来看下面这段代码

(function(){
        var Person = function () {
            this.name = 'zhangsan';
            this.work  = function () {
                console.log('work by leg');
            }
        }
        Person.prototype.age = function(){}
        var person1 = new Person();
        console.log(person1);
    })()

定义了一个person对象,使用firebug查看运行结果如下:



 

我们可以看到对象实例化时会有一个_proto_属性指向prototpe对象。到这里是不是能想到js继承是怎么实现的了吧。

(function(){
        var Person = function () {
            this.name = 'zhangsan';
            this.work  = function () {
                console.log('work by leg');
            }
        }
        Person.prototype.age = function(){
            console.log('Person age is 20');
        }
        var Person1 = function(){
           
        }
        Person1.prototype = new Person();
        var person1 = new Person1();

        console.log(person1);
        console.log(person1.name);
        person1.age();
    })()

运行结果:



 



 

这只是简单的继承方式,其它的继承方式就不在这里累赘了

猜你喜欢

转载自814108660.iteye.com/blog/2267837