//普通函数
function person(name , age ,gender){
//创建一个新的对象
var obj = new Object();
//向对象中添加属性
obj.name = name;
obj.age = age;
obj.gender = gender;
obj.sayName = function(){
alert(this.name);
};
//将新的对象返回
return obj;
}
//普通函数的调用
var obj = person("蜘蛛精",18,"女");
console.log(obj);
//构造函数
function Person(name , age , gender){
this.name = name;
this.age = age;
this.gender = gender;
this.sayName = function(){
alert(this.name);
};
}
// 构造函数的调用
var per = new Person("猪八戒",28,"男");
console.log(per);
例如:上面的例子在控制台输出的结果看下图
4. 当以函数的形式调用时,this是window,而当以构造函数的形式调用时,this就是新创建的那个对象。
//普通函数
function fn() {
console.log(this) //输出的是window
}
//普通函数的调用
var obj = fn()
//构造函数
function Function() {
console.log(this) //输出的是Function
}
//构造函数的调用
var Fn = new Function()
一、关于原型:
二、关于原型链:
所谓原型链其实就是由原型对象的原型对象构成的一个链式结构。
三、原型的作用:
四、如何检查对象中含有某一个属性
console.log("属性名" in 对象名);
五、检查一个对象自身是否含有某一个属性
console.log(对象名.hasOwnProperty("属性名"));