JS定义类及对象
2016-06-16 10:01
381 查看
1.工厂方式
问题:每创建一个对象,对象的方法是新对象,浪费资源
2.构造函数方式
问题:创建对象时比工厂方法更于理解。和工厂方法一样,每个对象都有自己的方法,浪费资源.
3.原型方式
问题:无法在构造方法中传递参数,所有对象共享属性。
优点:对象共用方法,节约资源的。
4.构造方法+原型方式
优点:解决了前面提到的问题
问题:封装不够完美。
5。动态原型方式
结论:一种完美的解决方案。
6.对象的创建--JSON
<script type="text/javascript"> function createObject(name){ var p = new Object(); p.name=name; p.say = function(){alert(p.name+'ff');} return p; } var p1 = createObject("p1"); var p2 = createObject("p2"); alert(p1.name+" "+p2.name); p1.say();p2.say(); alert(p1.say==p2.say); //false </script>
问题:每创建一个对象,对象的方法是新对象,浪费资源
2.构造函数方式
<script type="text/javascript"> function Person(name){ this.name = name; this.say = function(){ alert("I am "+this.name); } } var p1 = new Person("wang"); var p2 = new Person("li"); p1.say(); p2.say(); alert(p1.say==p2.say); //false </script>
问题:创建对象时比工厂方法更于理解。和工厂方法一样,每个对象都有自己的方法,浪费资源.
3.原型方式
function Person(){} Person.prototype.name=""; Person.prototype.say=function(){ alert("I am"+this.name); } var p1=new Person(); var p2=new Person(); alert(p1.say==p2.say);//true
问题:无法在构造方法中传递参数,所有对象共享属性。
优点:对象共用方法,节约资源的。
4.构造方法+原型方式
function Person(name){ this.name=name; } Person.prototype.say=function(){ alert("I am"+this.name); } var p1=new Person("wang"); var p2=new Person("li"); p1.say(); p2.say(); alert(p1.say==p2.say);//true
优点:解决了前面提到的问题
问题:封装不够完美。
5。动态原型方式
function Person(name){ this.name=name; if(Person.prototype.say==undefined){ Person.prototype.say=function(){ alert("I am "+this.name); } } } var p1=new Person("wang"); var p2=new Person("li"); p1.say(); p2.say(); alert(p1.say==p2.say);//true
结论:一种完美的解决方案。
6.对象的创建--JSON
var person={}; var girl={ name:"miss wang", age:20, show=function(){ alert("my name is "+this.name); } }
相关文章推荐
- js数组排序
- .NET之如何解析Json对象
- JavaScript放大镜插件magnifier实现图像放大效果
- JS的常用正则表达式
- javascript正则表达式之分组概念与用法实例
- jsf学习之a4j组件
- js学习阶段总结(必看篇)
- 原生js封装二级城市下拉列表的实现代码
- javaScript 中的私有,共有,特权属性和方法
- flash与js交互方法
- JS创建类和对象
- [Effective JavaScript 笔记]第36条:只将实例状态存储在实例对象中
- JS总结
- javascript作用域、作用域链(菜鸟必看)
- JS中的 $(function(){ } 是什么意思
- js中屏幕尺寸计算的几个属性学习笔记
- Merge Sorted Array
- js实现模态窗口的拖拽功能
- 全面理解JavaScript中的继承(必看)
- js数字时钟