javascript高级编笔记第六章

javascript高级编笔记第六章
1 对象的创建方法 使用new();
使用字面量创建;

使用工厂模式创建对象 用函数封装以特定接口创建对象的细节例子如下
function creatPerson(name,age,job){
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.sayname = function(){
console.log(this.name);
};
return o;
}
var p1 = creatPerson('xd','25','coder');
p1.sayname();

使用构造函数模式创建对象 区别工厂模式 1没有明显创建对象 2属性和方法复制给THIS 3 没有return
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.sayname = function(){
console.log(this.name);
};
}
var p1 = new Person('xd','25','coder');
p1.sayname();
函数名Person为大写 JS构造函数名首字母大写 非构造函数名小写 构造函数可以用来创建对象
创建Person对象必须使用new 经历四个步骤
1 创建一个新对象
2 将构造函数的的作用域赋给新的对象 this就指向这个对象
3 执行函数中的代码 (为函数对象添加属性和方法)
4 返回新的对象
检测 alert(p1 instanceof Object);//true
----------------------------------------------------------
任何函数如果用NEW 来调用 都可以作为构造函数使用 任何构造函数 不用new调用 都可以当作普通函数来使用
----------------------------------------------------------
2 原型模式来创建对象 实例
function Person(){
Person.prototype.name = 'xued';
Person.prototype.age = '25';
Person.prototype.job = 'coder';
Person.prototype.sayname =function(){
console.log(this.name);
}
}
var p1 = new Person();
var p2 = new Person();
alert(p1.sayname()==p2.sayname());//true
原型模式简单的方法
function Person(){

}
Person.prototype={
name : "xued",
age : "25",
job : "coder",
sayname : function(){
alert(this.name);
}
}
var p1 = new Person();
//重新添加方法;
Person.prototype.sayhi=function(){
alert('1');
};
p1.sayhi();

混合模式
function Person(name,age,job){
this.name=name;
this.age=age;
this.job=job;
}
Person.prototype={
constructor:Person,
sayname : function(){
// alert(this.name);
return this.name;
}
}
var p1 = new Person('xd','25','coder');
var p2 = new Person('xy','25','gamer');
alert(p1.sayname()==p2.sayname()); //false;
// p1.sayname();
3--------------------
继承
太难

 

posted @ 2016-02-25 15:54  不会r闪怪腾讯  阅读(134)  评论(0编辑  收藏  举报