构造函数创建对象

Function.prototype.a = 'a';
Object.prototype.b = 'b';

function Person(v) {
    this.v=v;
};
var p = new Person("aa");
//以上代码是通过构造函数创建对象;
//其过程为:
    //1.创建一个新的对象
    //2.将构造函数的作用域赋给新的对象(因此其中的this就指向了这个函数)
    //3.执行构造函数中的代码(为这个新对象添加属性)
    //4.返回新对象
//因此p的类型为object,而不是function,它不会继承Function的原型属性
//因object为所有对象的基类,所以,p可以访问得到Object的原型的属性				
console.log('p.a: ' + p.a); // p.a: undefined
console.log('p.b: ' + p.b); // p.b: b

1.对象有属性_proto_,指向该对象的构造函数的原型

2.方法除了有_proto_,还有prototype,prototype指向该方法的原型

3.函数实例的原型是object类型,构造函数是function类型

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页