<script type="text/javascript">
1、// 创建构造函数 使用原型创建对象
function CreatStudent(name,age){
//1、1把外部的参数绑定在实例属性
this.name =name;
this.age = age;
};
1.2把相同的属性或方法绑定在原型上 (原型属性、原型方法)
CreatStudent.prototype.gender = "男";
CreatStudent.prototype.sayHi = function(){
alert("hello");
};
2、调用构造函数来创建对象
var obj1 = new CreatStudent("李伟",22);
var obj2 = new CreatStudent("李培舟",23);
① instanceof 可以判断对象属于哪个构造函数
② constructor 也可以判断对象属于哪个构造函数 (重要)
③ 实例对象中有一个constructor属性,指向它的构造函数
④ 原型中也有constructor属性,指回构造函数
console.log(obj1.constructor==obj2.constructor)
console.log(CreatStudent.prototype.constructor==CreatStudent);
⑤ in判断该属性是否存在这个对象中(实例属性,原型属性,存在true,否侧false)
alert("name" in obj1); //实例属性
alert("gender" in obj1)//原型属性
⑥ hasOwnProperty()方法:可以判断出是从实例属性还是原型属性,如果是实例属性返回true,如果是原型属性或者不存在返回false
console.log(obj1.hasOwnProperty("name"));
console.log(obj1.hasOwnProperty("gender"));
console.log(obj1.hasOwnProperty("aaa"));
例:判断是构造函数中的实例属性
function isPrototype(obj,proString){
if(obj in proString){
if(!obj.hasOwnProperty(proString)){
return true;
}else{
return false
}
return fasle;
}
}
结合使用构造函数和原型创建对象