作为一名Java程序猿,在理解Javascript中原型的概念时费了不少力气。我们都知道,js中没有类,只有函数,但其实他用一种原型的机制实现了类的功能,如下:
Javascript | Java |
---|---|
函数 | 构造函数 |
原型 | 其他(集合对象) |
我们将Js中的函数理解成Java中的构造函数,那么它在实例化的时候,会执行里面的代码,验证一下理解得对不对:
//定义函数
function Person(name){
alert("Hello "+name);
}
//实例化函数
var mayun = Person("mayun");
执行这段js代码,浏览器会弹出"Hello mayun",说明js函数可以理解成java类中的构造函数,在实例化时会便执行。
那么,在实例化不会执行的部分,就是构造函数之外的部分,Js管这部分叫做原型,验证一下这部分到底会不会执行:
//定义函数
function Person(name){
//alert("Hello "+name);
}
//定义原型属性——test函数
Person.prototype.test = function test(){
alert("Hello World");
}
//实例化函数
var mayun = Person("mayun");
运行时,浏览器没有弹出信息,说明实例化时,没有执行原型部分的代码。