刚才做了一些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一点小小心得