请问我按照工厂模式写的代码为何可以识别对象类型为Object呢?(是哪个地方写错了么?)
代码内容为:
<script>
function createPerson(name,age)
{
var o=new Object();
o.name=name;
o.age=age;
return o;
}
var person1=createPerson("haha",1);
var person2=createPerson("www",4);
alert(person1.name);
alert(person1 instanceof Object);
alert(person2 instanceof Object);
</script>
然后后面两个instanceof检测都弹出来true了。
因为是新手十分不解T.T ……求大神指导
你这个说的应该是JavaScript高级程序设计里面的问题。
书上指的没有解决对象识别问题,不是指个。
指的是alert(person1 instanceof createPerson);//false
因为o对象是在createPerson中重新定义的new Object(),因此createPerson就不是o对象的原型了。而构造函数就解决了这个问题。
你返回的o 就是一个你自己声明的对象呀 ,instanceof 肯定是返回true的 ,
而且js 的instanceof 是相当不可靠的的东西。你应该要做的是判断构造函数 constructor 是不是特定的某个值
你好,你知道怎么弄积分的吗?
var o = new Object 这句代码不就是实例化一个Object类的对象赋给o吗,而且方法返回一个对象o(就是Object类的对象),那里有问题?
还不明白可以把这代码
var person1 = createPerson("haha",1);
分解一下:
createPerson("haha",1) = o;
var person1 = o;