码迷,mamicode.com
首页 > Web开发 > 详细

JS面向对象的程序设计 - 高设

时间:2014-05-26 14:48:09      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:style   c   class   blog   code   java   

bubuko.com,布布扣
 1 //工厂模式
 2     function createPerson (name, age, job){
 3         var o = new Object();
 4         o.name = name;
 5         o.age = age;
 6         o.job = job;
 7 
 8         o.sayName = function (){
 9             alert(this.name);
10         }
11         return o;
12     }
13 
14     var sam = createPerson("sam", 18, "web front");
15 
16 
17 //构造函数模式
18     function Person (name, age, job){
19         this.name = name;
20         this.age = age;
21         this.job = job;
22         this.sayName = function (){
23             alert(this.name);
24         }
25     }
26 
27     var david = new Person("david",18,"student");


bubuko.com,布布扣

 

原型模式

我们创建的每一个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是可包含可以由特定类型的所有实例共享的属性和方法;(还不会自己总结- -)

 

缺点:构造函数创建的每一个实例都会创建每一个实例的function实例,而每一个实例的function实例都不相等;(解决方法:高射147页,第三版)

1 alert(person1.sayName == person2.sayname); //false;

 

构造函数

构造函数其实也是普通的函数对象,构造函数与其他函数唯一的区别就是:当它通过 new操作符调用时,它就可以变成构造函数

将构造函数当作普通函数使用时,构造函数会将构造函数的参数添加给全局对象的属性(window);

hasOwnProperty()方法 检测属性是实例创建的还是继承原型

bubuko.com,布布扣
 1 Person2.prototype.name = "sam";
 2     Person2.prototype.age = 18;
 3     Person2.prototype.sayName = function (){
 4         alert(this.name);
 5     }
 6 
 7     var person1 = new Person2();
 8     var person2 = new Person2();
 9     alert(person1.hasOwnProperty(‘name‘)); // false;
10 
11     person1.name = "david";
12     alert(person1.name); // "david" ----来自实例;
13     alert(person1.hasOwnProperty(‘name‘)); // true;
14 
15     alert(person2.name); // "sam" ----来自原型;
16     alert(person2.hasOwnProperty(‘name‘)); // false;
17 
18     delete person1.name;
19     alert(person1.name); // "sam" ----来自原型
20     alert(person2.hasOwnProperty(‘name‘)); // true;
bubuko.com,布布扣

 

 

...........睡觉了- -明天再继续更新

 

 

JS面向对象的程序设计 - 高设,布布扣,bubuko.com

JS面向对象的程序设计 - 高设

标签:style   c   class   blog   code   java   

原文地址:http://www.cnblogs.com/juhualang/p/3746417.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!