存档
感谢小秦帮我指出错误:
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 [...]