javaScript prototype原型的理解
2015-12-15 11:39
429 查看
function Box(){};
Box.prototype.name = "lishiming";
Box.prototype.age = 23;
Box.prototype.run = function(){
return this.name;
};
var box = new Box();
var box2 = new Box();
alert(box.name);
alert(box2.name);
从这里可以看出box与box2的name值是一样的,这就是prototype的作用,实现成员的共享。
如果学过java的人肯定知道java语言里面有一种变量的类型,
叫做静态变量,或者是静态成员,JavsScript的prototype其实就相当于Java里面的static关键字
在Java中,使用static关键字修改的变量叫做类变量,而JavaScript没有类这种概念,在此,可以理解为prototype修饰的变量为类变量。
JavaScript对象默认情况下已经存在了prototype这个变量引用,只是为空,可以理解为对象或者是变量。这个对象指向一个空对象。
当为这个prototype赋值的时候,不再为空,也就指向了赋值后的对象,而且这个prototype不会改变,所以指向的引用对象也不会变。
这样就实现了对象共享变量的功能
Box.prototype.name = "lishiming";
Box.prototype.age = 23;
Box.prototype.run = function(){
return this.name;
};
var box = new Box();
var box2 = new Box();
alert(box.name);
alert(box2.name);
从这里可以看出box与box2的name值是一样的,这就是prototype的作用,实现成员的共享。
如果学过java的人肯定知道java语言里面有一种变量的类型,
叫做静态变量,或者是静态成员,JavsScript的prototype其实就相当于Java里面的static关键字
在Java中,使用static关键字修改的变量叫做类变量,而JavaScript没有类这种概念,在此,可以理解为prototype修饰的变量为类变量。
JavaScript对象默认情况下已经存在了prototype这个变量引用,只是为空,可以理解为对象或者是变量。这个对象指向一个空对象。
当为这个prototype赋值的时候,不再为空,也就指向了赋值后的对象,而且这个prototype不会改变,所以指向的引用对象也不会变。
这样就实现了对象共享变量的功能
相关文章推荐
- ArcGIS API for Javascript 应用开发入门
- 简单的js反选,全选,全不选
- javascript 新增的选择器
- js实现根据身份证号自动生成出生日期
- Json Serialize 忽略特定属性
- Chrome 中的 JavaScript 断点设置和调试技巧
- JS中Exception处理
- Console命令详解,让调试js代码变得更简单
- JavaScript中的XML解析
- JavaScript基础学习<一>数值的转换
- jsp指令总结
- javascript基本语法
- 浅析javascript的return语句
- js----增加删除节点
- js中event的target和currentTarget的区别
- 轻松学习Javascript闭包函数
- ajax 用法 + json使用方法
- js,replace() 和 正则表达式(regular expression)
- JSP自定义标签入门学习
- iOS中JavaScript和OC交互