function Obj() {}
var o = new Obj();
alert(o.toString());
我一开始以为是,定义一个构造函数时,他的prototype就会被Object()给创建,然后继承Object()的prototype的所有属性
可是当我alert(o.prototype)时,显示undefined,那o.toString()是怎么来的?甚至var o = new Object();o的prototype也是undefined,我实在不明白。
var o = new Obj();
alert(o.toString());
我一开始以为是,定义一个构造函数时,他的prototype就会被Object()给创建,然后继承Object()的prototype的所有属性
可是当我alert(o.prototype)时,显示undefined,那o.toString()是怎么来的?甚至var o = new Object();o的prototype也是undefined,我实在不明白。
var i = new Object(); //i只是获得了原型链内的方法。而不是将object的原型链赋给了i。就像java、c#对象从来没有拿到构造函数方法一样
alert(i.prototype);
比如
function Obj() {
this.a;
或者
var a;
}
用var的话也就是相当于OOP中的私有变量了,之后再提供getter和setter就行了
可是用this的话,再提供getter和setter就没有任何意义了
用哪种好?
如果要私有就var定义,共有用this即可
function A() {
var name = "jack";
var age = 22;
this.sex = true;
this.getAge = function () {
return age;
};
}
typeof o.constructor.prototype; // object