javascript prototype一点小小心得

刚才做了一些js的测试,得到prototype一点小小心得,就是结论的东西,帮助总结prototype概念的。

<script>

(function(){
var BaseClass = function() {};
BaseClass.prototype.method = function(){
alert(‘ This is a instance method ‘);
}

var instance1 = new BaseClass();
instance1.method();//此处输出为:This is a instance method
instance1.method1= function(){ //给实例化的对象本身定义一个方法
alert(‘ This is a instance method1 ‘);
}
instance1.method1();//此处输出为:This is a instance method1

var instance2 = new BaseClass();

instance2.prototype.method2 = function(){ //给实例化的对象的原型链上定义一个方法
alert(‘ This is a instance method2’);
}

instance2.method1();//不输出,说明两个不同的实例化的对象彼此之间互不影响

instance2.method2();//不输出,说明在实例化出来的对象的prototype上定义是无效的,详见:http://web.zhaicool.net/396.html

var instance3= new BaseClass();

instance3.__proto__.method3 = function(){
alert(‘ This is a instance method3’);
}

instance3.method3();//This is a instance method3

instance2.method3();//This is a instance method3

instance1.method3();//This is a instance method3

//以上三个输出说明实例化出来的对象可以通过__proto__来修改类对象(本例中为BaseClass)的prototype属性,本例中instance3.__proto__等同于BaseClass.prototype。
})()

</script>

以上就是几点小结论,仅供基础知识备用~

未经允许不得转载:前端撸码笔记 » javascript prototype一点小小心得

上一篇:

下一篇: