发布网友 发布时间:2022-04-24 09:33
共3个回答
热心网友 时间:2022-04-07 06:14
你的程序不是哪里错了,而是根本就没有对的地方!
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+"岁<br/>");
}
}
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");
}
}
静态方法参看静态变量
打字老慢,算了不想打了追问额,我明白了一点,不过你要是按你上面写的那个写法,不还是一样的用对象进行对象化而不能够体现函数的对象化的用法额
追答不明白你所谓的用对象进行对象化是什么意思?你指的是实例化?
如果是,有两个方法的,一种是静态对象,这个对象可以直接使用的,当然可以实现,JS完全可以模似,而另一种可以将对象实例化语句放到某一方法中,比如面象对象中的单例模式等都是,而且可以用JS模拟,但你所说的函数对象化用法实不明白所以然的!
热心网友 时间:2022-04-07 07:32
你可以定义个类,用来批量实例化对像,
var Xclass=function(namevalue)
{
var xobj=new object();
xobj.name=namevalue;
xobj.say=function(){alert(this.name)}
return xobj;
}
这样 以后你再想定义对像的时候就可以这样定义了
var x=Xclass("mabt");
热心网友 时间:2022-04-07 09:07
学习一下