A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郝永亮 黑马粉丝团   /  2019-4-10 16:00  /  1085 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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);


3 个回复

正序浏览
张志辉 来自手机 中级黑马 2019-4-18 11:55:43
板凳
回复 使用道具 举报
回复 使用道具 举报
miaoxiong 来自手机 中级黑马 2019-4-12 01:59:17
沙发
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马