function Box(){
this.aaa=123;
}
var box=new Box();
console.log(Box);
console.log(box);
console.log(box.aaa);
console.log(Box.prototype);
console.log(box.constructor);
console.log(box.__proto__);
console.log(box.constructor==Box);
console.log(Box.prototype==box.__proto__);
console.log(box.__proto__.constructor.__proto__.constructor);
console.log(box.__proto__.constructor);
结果:
来自群里的问题
function a () { this.c= function () { console.log('c'); } }; a.b = function () { console.log('b'); }; var e = new a (); console.log(e._________) //问题:a的实例得到b方法 不用call,apply
答案:
//首先new以后 e.__proto__=a.prototype,当想调用e的b方法时,首先e没有b方法和属性,于是他要到他的__proto__中去找,也就是a.prototype中,但又没在他的原型里写,所以就找不到
console.log(e.__proto__.constructor.b());
来自jquery的理解
function pub(){ return new pub.prototype.init(); } pub.prototype.init=function(){ this.css(); } pub.prototype.css=function(){ console.log("123"); } pub.prototype.init.prototype=pub.prototype; pub().css();
//pub.prototype.init.prototype=pub.prototype;形成了对象互相引用,所以才能用pub().css()