存档
学习Javascript快四年了。因为最初是从实践开始学的,真正系统的学习到了06年才开始。虽然学的时间够长了,曾经经历过两次瓶颈,第一次就是JS的对象。在初级教程中,JavaScript创建对象的方法基本上都是function,而且网网一带而过。所以如果只是买一本Javascript入门书开始学习JavaScript很容易遇到瓶颈。今天我写这篇文章,算是帮帮比我还菜的菜鸟,快速掌握Javscript创建对象的方法吧。
首先来介绍一下在Javascript书籍上最常见的一中方式function方式
function 对象名() {
this.变量1=变量1的值;
this.变量2=变量2的值;
this.函数1= function() {
函数体
};
this.函数2= function() {
函数体
};
……;
}
说明:
(1)其内的变量或者函数前必需写上this关键字;
(2)对象的内容与值以等号分隔,成对出现;
(3)包含的变量或者函数之间以分号分隔。
(4)函数需要写在function(){}的大括号之内。
例子:
function miaoqiyuan() {
this.name="苗启源";
this.nickname="飞猫,mqycn";
this.homeurl=function() {
alert("http://www.miaoqiyuan.cn");
};
this.gohome=function() {
location.href="http://www.miaoqiyuan.cn";
}
}
第二种:JSON方式
var 对象名 = {
变量1: 变量1的值,
变量2: 变量2的值,
函数1: function(){
函数体
},
函数2: function(){
函数体
},
……
};
说明:
(1)大括号内直接填写变量或者函数;
(2)对象的内容与值以冒号分隔,成对出现;
(3)包含的变量或者函数之间以逗号分隔;
(4)函数需要写在function(){}的大括号之内。
例子:
var miaoqiyuan = {
name:"苗启源",
nickname:"飞猫,mqycn",
homeurl: function() {
alert("http://www.miaoqiyuan.cn");
},
gohome: function() {
location.href="http://www.miaoqiyuan.cn";
}
};
第三种:原型方式
var 对象名 = {};
对象名.prototype.变量1=变量1的值;
对象名.prototype.变量2=变量2的值;
对象名.prototype.函数1= function() {
函数体
};
对象名.prototype.函数2= function() {
函数体
};
……;
说明:
(1)初始对象体内可以不定义任何东西;
(2)在要定义的变量前加“对象名.prototype.”的格式;
(3)对象的内容与值以等号分隔,成对出现;
(4)包含的变量或者函数之间以分号分隔,也可以省去分号。
(5)函数需要写在function(){}的大括号之内。
例子:
var data = {};
data.prototype.name ="苗启源";
data.prototype.nickname ="mqycn,飞猫";
data.prototype.homeurl = function() {
alert("http://www.miaoqiyuan.cn");
};
data.prototype.gohome= function() {
location.href="http://www.miaoqiyuan.cn";
};
第四种为create方式,该方式利用了Prototype JavaScript组件库,很少见有人用。
var 对象名 = Class.create();
Object.extend(对象名.prototype, {
变量1: [...]