js对象
来源:互联网 发布:数据站点应当互不相同 编辑:程序博客网 时间:2024/05/19 02:17
一.对象的特点
1.抽象
2.封装
3.继承
4.多态
二.创建对象的方法
(1)对象字面量
var person={
name:"小明",
age:23
}
(2)工厂模式:就是一个函数,然后放入参数,返回对象,流水线工作
function createClock(hour,minute,second){
var clock = new Object();
clock.hour=hour;
clock.minute=minute;
clock.second=second;
clock.showHour=function(){
alert(this.hour+":"+this.minute+":"+this.second);
};
return clock;
};
var newClock = createClock(12,12,12);//实例化
newClock.showHour();//调用
工厂模式的优缺点:虽然解决了创建相似对象的问题,但是却没有解决对象识别问题(即怎样知道一个对象的类型)。
(3)构造函数模式
function clock(hour,minute,second){
this.hour = hour;
this.minute = minute;
this.second = second;
this.showTime = function(){
alert(this.hour+":"+this.minute+":"+this.second);
}
}
var newClock =new clock(12,12,12);
alert(newClock.hour);
构造函数模式的优缺点:
1、优点:创建自定义函数意味着将来可以将它的实例标识为一种特定的类型,这是构造函数胜过工厂模式的地方
2、缺点:每个方法都要在每个实例上重新创建一遍
(4)原型模式function clock(hour,minute,second){
}
clock.prototype.hour=12;
clock.prototype.minute=12;
clock.prototype.second=12;
clock.prototype.showTime=function(){
alert(this.hour+":"+this.minute+":"+this.second);
}
var newClock = new clock();
newClock.showTime();
原型模式的优缺点:
1、优点:可以让所有的对象实例共享它所包含的属性和方法
2、缺点:原型中是所有属性都是共享的,但是实例一般都是要有自己的单独属性的。所以一般很少单独使用原型模式。
(5)构造-原型组合模式
function clock(hour,minute,second){
this.hour = hour;
this.minute = minute;
this.second = second;
}
clock.prototype.showTime=function(){alert(this.hour+":"+this.minute+":"+this.second);}
var newClock = new clock(12,12,12);
newClock.showTime();
总结:
function 构造函数(){
this.属性;
}
构造函数.原型.方法=function(){};
var 对象1=new 构造函数();
对象1.方法();
三、注意点
(1)js在创建对象的时候,都有一个叫做 __proto__的内置属性,用于指向创建它的函数对象的原型对象 prototype
(2)实例化对象会有一个内置属性construct指向它的构造函数
(3)每一个构造函数都有一个prototype
属性,指向另一个对象。这个对象的所有属性和方法,都会被构造函数的实例继承。
每个构造函数都有一个原型对象,原型对象包含一个指向构造函数的指针( constructor),而实例则包含一个指向原型对象的内部指针( __proto__)。
参考:http://www.cnblogs.com/yuxingyoucan/p/5797142.html
http://www.cnblogs.com/FromSnatch/archive/2012/05/20/2510682.html
- Js 对象
- js 对象
- js对象
- js对象
- js 对象
- js对象
- js对象
- JS 对象
- js对象
- Js 对象
- js对象
- JS对象
- JS 对象
- js对象
- Js对象
- js 对象
- js 对象
- js对象
- 【DP?】买卖股票
- javascript的原型与原型链
- HAProxy+Varnish动静分离部署WordPress
- SSM框架搭建思路及流程
- 网络配置工具
- js对象
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 H. Skiing
- 使用wait和notify来实现生产者和消费者
- Java的隐秘之JavaCC
- 使用Lock和Condition实现生产者和消费者
- HTTP请求错误400、401、402、403、404、405、406、407、412、414、500、501、502解析
- SpringMVC文件上传
- 随笔之框架原理
- Linux前台、后台、挂起、退出、查看命令汇总