原文地址:http://www.cnblogs.com/allenxing/p/3527654.html

荒废了好几天,在宿舍闷了几天了,一直想着回家放松,什么也没搞,论文就让老师催吧。不过,闲的没事干的感觉真是不好,还是看看书,写写博客吧,今天和大家说说函数的原型。

原型是什么

第一次看到这个的时候,没太理解这个概念,其实也就是一个概念呗,没啥神秘的。书上说每个函数都有一个prototype属性(原型属性),这个属性是一个指针,指向一个对象(原型对象),这个对象包含这个函数创建的实例的共享属性和方法。也就是说原型对象中的属性和方法是所有实例共享的,打住,那我们就先创建一个函数看看,原型是什么东东

var test = function(){}
console.log(test.prototype);//Object {}

看来,是这的有这么一个属性,可以看出是一个对象,但是默认的是一个空的对象,既然是一个对象,那我们就可以给它添加属性和方法喽,试试看

var test = function (){}
test.prototype.name = "hainan";
test.prototype.age = "25";
test.prototype.getName = function(){console.log(this.name);}
console.log(test.prototype);//Object {}
View Code

(转)【javascript基础】原型与原型链

我们成功的添加了属性和方法,骄傲吧,对象中的属性一会我们在解释,现在看看我们修改之后的原型对象,有啥用呢?刚才我们说过,原型对象中的属性和方法是这个函数new出来实例所共享的,那我们就new实例出来试试

(转)【javascript基础】原型与原型链
var test = function test(){}
test.prototype.name = "hainan";
test.prototype.age = "25";
test.prototype.getName = function(){console.log(this.name);}
console.log(test.prototype);//Object {}
var o1 = new test();
console.log(o1.getName());
console.log(o1.name);
var o2 = new test();
console.log(o2.getName());
console.log(o2.name);
(转)【javascript基础】原型与原型链
View Code

相关文章: