构造函数

构造函数
在JavaScript中,构造函数是给对象添加属性,初始化属性用的。
构造函数的结构

function Person(name, age){
	    this.name = name;
	    this.age = age;
	}

传统构造函数所带来的问题
实例化两个person对象,在Person对象中具备属性和方法,每创建一个对象,函数都会被重新创建一次,这样就造成了内存的浪费. 并且呢 每个对象都拥有一个独立的 功能相同的方法.
实例化:通过构造函数创建对象的过程 称之为实例化
(1)神秘对象与构造函数
- 神秘对象就是构造函数的 “原型属性”
- 简称原型 (构造函数的原型)
(2)神秘对象与构造函数所创建出来的对象
- 神秘对象针对构造函数创建出来的对象称为 “原型对象”
- 简称原型 (对象的原型)
注意事项
使用对象访问属性的时候,如果在本身内找不到就会去原型中找
但是 使用 点 语法 进行属性赋值的时候,并不会去原型中进行查找
使用点语法赋值的时候,如果对象中不存在该属性,就会给该对象新增该属性,而不会去修改原型中的
原型的使用
利用对象的动态属性给原型对象添加成员

	Eg:

		function Person(name,age,gender){

			this.name=name;

			this.age=age;

			this.gender=gender;

		}

		Person.prototype.func=function(){

			console.log('somthing');

		}

		var p=new Person('Mark',23,'woman');

		p.func();

直接替换原型对象
Eg:
`function Person(name,age,gender){
this.name=name;
this.age=age;
this.gender=gender;
}
Person.prototype={ // 核心
msg:‘你是我的眼’
};
var p=new Person(‘张三’,12,‘man’);
console.log(p.msg);

直接替换原型会出现问题
Person.prototype.sayHello=function(){
console.log(‘Nice to meet you’);
}
var p=new Person(‘谢顶’,23,‘man’);
p.sayHello();
Person.prototype={ // 核心 替换原型
msg:‘你是我的眼’
};
var p1=new Person(‘刘能’,34,‘male’);
console.log(p1.msg);
p1.sayHello();// 不可以打印出结果
p.sayHello(); // 可以打印出结果
两次原型 并不是同一个 原型对象`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值