javascript对象问题
发布网友
发布时间:2022-05-02 20:55
我来回答
共3个回答
热心网友
时间:2022-04-24 07:15
function WhoAml() 在js里面可以理解为创建一个类WhoAml
下面的WhoAml.WhoAml = WhoAml;
第一个WhoAml是对象,为什么不需要用var new WhoAml出来呢,因为你没有使用到原型prototype,如果你使用
WhoAml.prototype.WhoAml = WhoAml,那么你使用的时候就要new 一个对象,才可以调用
但是没有使用的话,直接就可以用了,在没有使用prototype的时候,可以理解为类似其他语言的静态方法,直接使用 类名.属性 或者是 类名.方法名调用就可以
热心网友
时间:2022-04-24 08:33
NO 肯定声明了 只是你没找到 函数就是函数 不是什么对象追问function WhoAmI(){
alert("I'm"+this.name+"of"+typeof(this));
}
WhoAmI.WhoAmI=WhoAmI;
如果我再加上一条 WhoAmI.name="bill";
然后调用WhoAmI();就能输出alert语句。
那WhoAmI不是对象是什么?
追答是啊 WhoAmI.WhoAmI=WhoAmI 第一个whoAml这个是对象 第二个是属性
热心网友
时间:2022-04-24 10:08
是这样的,在图中,SubType指的是一个构造函数,每个构造函数都有一个原型属性prototype,默认指向他的原型对象:SubType Prototype。
instance是由构造函数SubType构建的一个实例对象,实例对象继承了构造函数原型的方法和属性,同时实例和原型之间的联系就是通过某个属性联系的,在图中就表现为[[Prototype]],这个属性怎么表示不重要,重要的是你知道他的存在,并且通过他实例才能和原型联系起来,构造函数只是一个表现形式,原型对象才是真正给实例继承的。
在图中instance的[[Prototype]]和SubType的 prototype指向的是同一个原型对象。
你在chrome中可以通过:
console.log(SubType.prototype);console.log(instance.__proto__);来看他们的输出:
都是指向SuperType{}原型对象。
所以说[[Prototype]]只是一个表示符号,表示实例指向原型对象的一种关系,就像上面这种关系就用__proto__来表示了。
希望能帮到你,采纳我把,(*^__^*) 嘻嘻。
打字不易,如满意,望采纳。追问不知所云,能否用清晰简洁的语句阐述一下?