javascript中函数创建对象并执行的问题

2024-12-20 12:21:01
推荐回答(3个)
回答1:

你的程序不是哪里错了,而是根本就没有对的地方!

var x={
name:"hello",
say:function(){alert(this.name)}
}
x.say();

这段代码有对象定义,实例化及调用!

首先这是一个无名对象,也就是说{}里的内容就是定义的对象,而var x =就是将这个匿名对象实例化给x,而x.say()就是调用!而你定义的充其量是一个函数,函数另定义了一个委托而已.换句话来说,你的Y就变成了个执行的结果,那么Y肯定没有任何属性与成员变量的!

定义对象的方法是XX:XX;就是属性,而不是你写的xx=xx;就是语句!如果是:
y={
name:"mabt";
age:"20";
say:function (){
document.write(this.name+"--"+this.age+"岁
");
}
}
alert(y.name);
y.say();
这样才有点意思!而你写的东西根本就是不对的!索性教你一下:

JS模拟字段(因为啥是模似?因为垃圾的JS根本不是OOPLs)
function DefaultClass()
{
name:"kusirp21";
}

JS模拟私有变量:
function DefaultClass()
{
var name = "kusirp21"; //带初始值,外部不能调用,但内部可以调用
}
JS模拟静态成员变量
function DefaultClass()
{}
DefaultClass.Version = "V1.0";
JS模拟方法
function DefaultClass()
{
this.say = function()
{
alert("this is function");
}
}
静态方法参看静态变量
打字老慢,算了不想打了

回答2:

你可以定义个类,用来批量实例化对像,
var Xclass=function(namevalue)
{
var xobj=new object();
xobj.name=namevalue;
xobj.say=function(){alert(this.name)}
return xobj;
}
这样 以后你再想定义对像的时候就可以这样定义了
var x=Xclass("mabt");

回答3:

学习一下