黑马程序员技术交流社区

标题: 【太原校区】 [打印本页]

作者: 郝永亮    时间: 2019-4-10 16:00
标题: 【太原校区】
JS对象常见的三种创建方式
1.工厂模式
1.1使用方式
将创建对象的复杂步骤封装到函数中。
1.2优点
可以很方便的创建很多对象
1.3缺点
无法判断创建出来的对象的类型
1.4代码
[JavaScript] 纯文本查看 复制代码

function createPerson(name,age){
    var obj = new Object();
    obj.name = name;
    obj.age = age;
    return obj;
}

var p1 = createPerson("jack",14);
console.log(p1.name+":"+p1.age);

2.构造函数模式2.1使用方式
1.使用function定义构造方法
2.构造函数的首字母必须大写,用来区分于普通函数
3.内部使用的this操作属性和行为
4.使用new来生成实例对象
2.2优点
可以很容易区分使用构造函数创建出来的对象的数据类型
2.3缺点
所有的实例对象都可以继承构造函数中的属性和方法,但是同一个实例之间,无法共享属性。
2.3代码
[AppleScript] 纯文本查看 复制代码

function Person(name,age){
    this.name = name;
    this.age = age;
}
var p1 = new Person("jack",13);
console.log(p1.name+":"+p1.age);

console.log(p1.constructor == Person);

3.原型模式
3.1使用方式
语法:构造函数名.prototype.属性/方法 = 值
3.2优点
同一个对象实例之间,可以共享属性
3.3缺点
所有的方法和属性都被共享
3.4代码
[AppleScript] 纯文本查看 复制代码

function Person(name,age){
    this.name = name;
    this.age = age;
}
Person.prototype.address = "北京";

var p1 = new Person("jack",14);
var p2 = new Person("rose",14);
console.log(p1.address);
console.log(p2.address);



作者: miaoxiong    时间: 2019-4-12 01:59

作者: liudongjie    时间: 2019-4-18 10:05

作者: 张志辉    时间: 2019-4-18 11:55





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2