js中prototype的概念是不是和java中类的static关键字是一样的意义?为什么java中没有实例化也能访问static生命的变量,但是js中prototype还是需要实例化对象之后才能通过对象访问?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
正好相反,js中的prototype类似于java中非static的方法/属性,是属于一个类的对象的方法。
而java(以及其他OO语言,如c++、php)中带有static属性的,是类的方法/属性。类的方法/属性当然是不需要实例化就可以访问的,比如说这个Duck类,就算没有实例化,你也能知道所有鸭子都应该有2条腿,但是年龄则只能是某只鸭子的属性。
class Duck { static int nr_feet = 2; int age; }
正好相反,js中的prototype类似于java中非static的方法/属性,是属于一个类的对象的方法。
而java(以及其他OO语言,如c++、php)中带有static属性的,是类的方法/属性。类的方法/属性当然是不需要实例化就可以访问的,比如说这个Duck类,就算没有实例化,你也能知道所有鸭子都应该有2条腿,但是年龄则只能是某只鸭子的属性。