构造函数
js中有三种对象的创建方法
- 字面量创建对象
var obj = { }
- 使用new关键字创建对象
var obj = new Object()
- 使用构造函数创建对象
function Obj(name,age){
//用this创建出来的属性叫做实例成员
this.name = name ;
this.age = age
}
var dd = new Obj('wsj',18)
console.log(dd.name)
//实例成员只能通过实例化的对象来访问
//用函数名创建出来的属性叫做静态成员,只能被构造函数调用
Obj.gender = 'man'
console.log(Obj.gender)
复制代码
构造函数造成了内存浪费,可以用prototype(构造函数原型对象)解决
原型
每一个构造函数都有一个prototype属性,指向另外一个对象,我们可以把相同的方法存储到原型对象上避免内存浪费。而且这样可以让所有对象的实例都共享使用这些方法。
如何访问实例对象?
- 构造函数.prototype
- 对象实例.proto
我们创建的属性,要么只能被构造函数访问,要么只能被实例化对象访问,但是如果我们在构造函数的prototype对象中创建的方法和属性,可以被所有对象访问。
constructor 构造函数
对象原型中存在一个constructor属性,指向构造函数本身
原型链
我理解的原型链就是一种关系,对象的__proto__指向他的原型对象,而他的原型对象也是一个对象,也有自己的原型对象Object
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END