标签归档:JS创建对象

怎样创建Javascript对象?

感谢小秦帮我指出错误:
  JSON只是一种数据形式,而不是你所谓的当然。
{xx:’111′}  这是一个对象,这个对象有一个属性名为 xx 值为 ’111′
而不是JSON。

还有那个Create,也只是变相的使用函数返回一个对象而已。

从根本上来讲,创建一个对象可以使用 new _object_,或者 {}  ,

“{}”这种形式其实是new _object_的简写。
就像 [] 是 new Array();的缩写一样。

更何况,在JS里一切都是对象。

比如:
1
 就是一个对象,它有 .toString方法,等等。。

      前几天写了一篇揭开Javascript对象神秘的面纱,结果网上一位牛人转载了我的文章,我的还没收录,他转载的竟然先被收录了,无语。在此鄙视百度。

      本来事情该告一段落了,但是论坛上有位网友告诉我说只测试function的方法成功了,其他都不行。汗,今晚抽点空,写几个例子,下载地址为:http://www.miaoqiyuan.cn/products/js-obj.rar

第一种:function方式,用new fun_name的方式创建对象

function miaoqiyuan() {
	this.name="苗启源";
	this.nickname="飞猫,mqycn";
	this.homeurl=function() {
		alert("http://www.miaoqiyuan.cn");
	};
	this.gohome=function() {
		location.href="http://www.miaoqiyuan.cn";
	}
}
var x=new miaoqiyuan;
x.homeurl();

第二种:直接创建对象的方式

var miaoqiyuan={
	name:"苗启源",
	nickname:"飞猫,mqycn",
	homeurl: function() {
		alert("http://www.miaoqiyuan.cn");
	},
	gohome: function() {
		location.href="http://www.miaoqiyuan.cn";
	}
};
miaoqiyuan.homeurl();

第三种:原型方式(这个我写了两个方式)

var miaoqiyuan = {};
miaoqiyuan.prototype=miaoqiyuan;
miaoqiyuan.prototype.name ="苗启源";
miaoqiyuan.prototype.nickname ="mqycn,飞猫";
miaoqiyuan.prototype.homeurl = function() {
	alert("http://www.miaoqiyuan.cn");
};
miaoqiyuan.prototype.gohome= function() {
	location.href="http://www.miaoqiyuan.cn";
};
miaoqiyuan.homeurl();
<script type="text/javascript">
var miaoqiyuan = {};
miaoqiyuan.prototype=miaoqiyuan;
miaoqiyuan.prototype={
	name:"苗启源";
	nickname:"mqycn,飞猫";
	homeurl:function() {
		alert("http://www.miaoqiyuan.cn");
	};
	gohome:function() {
		location.href="http://www.miaoqiyuan.cn";
	};
}
miaoqiyuan.homeurl();
</script>

第四种:create方式,该方式利用了Prototype JavaScript组件库,很少见有人用
实际上这个只是变相的使用函数返回一个对象而已。

//模拟prototype.js框架中的Class
var Class = {create: function() {return function(){}}}
//模拟prototype.js框架中的Object
Object.extend=function(destination, source){
	for(var property in source)
		destination[property] = source[property];
	return destination;
}; 
 
var miaoqiyuan = Class.create();
Object.extend(miaoqiyuan.prototype,{
	name:"苗启源",
	nickname:"飞猫,mqycn",
	homeurl: function() {
		alert("http://www.miaoqiyuan.cn");
	},
	gohome: function() {
		location.href="http://www.miaoqiyuan.cn";
	}
});
var m=new miaoqiyuan;
m.homeurl();