没有合适的资源?快使用搜索试试~ 我知道了~
javascript创建对象、对象继承的实用方式详解
0 下载量 32 浏览量
2020-11-23
18:20:25
上传
评论
收藏 45KB PDF 举报
温馨提示
试读
3页
本文约定:不特殊声明的情况下,属性代指属性或方法。 创建对象、对象继承实际上是一回事:我们所需要的实例对象通过构造函数获得私有属性、通过原型链获得共享的属性。什么是好的方式?私有属性通过构造函数的方式获得(不考虑实例中自定义私有属性)且不需要重写,共享属性通过原型链找到且不需要重复创建。 普适的方式 组合使用构造函数模式和原型模式创建对象 function HNU_student(name) { this.name = name; this.sayName = function() { return this.name; }; } HNU_student.protot
资源详情
资源评论
资源推荐
javascript创建对象、对象继承的实用方式详解创建对象、对象继承的实用方式详解
本文约定:不特殊声明的情况下,属性代指属性或方法。
创建对象、对象继承实际上是一回事:我们所需要的实例对象通过构造函数获得私有属性、通过原型链获得共享的属性。什么
是好的方式?私有属性通过构造函数的方式获得(不考虑实例中自定义私有属性)且不需要重写,共享属性通过原型链找到且
不需要重复创建。
普适的方式普适的方式
组合使用构造函数模式和原型模式创建对象
function HNU_student(name) {
this.name = name;
this.sayName = function() {
return this.name;
};
}
HNU_student.prototype = {
school: 'HNU',
saySchool: function() {
return this.school;
}
};
Object.defineProperty(HNU_student, 'constructor', {value: HNU_student});
var hiyohoo = new HNU_student('xujian');
通过字面量的方式会重写prototype,且原型的constructor指向了Object,必要的情况下需要重新定义constructor。
寄生组合式继承寄生组合式继承
function object(o) {
function F() {};
F.prototype = o;
return new F();
}
function inheritPrototype(child, parent) {
var prototype = object(parent.prototype);
prototype.constructor = child;
child.prototype = prototype;
}
function HNU_student(name) {
this.name = name;
this.sayName = function() {
return this.name;
};
}
HNU_student.prototype.school = 'HNU';
HNU_student.prototype.saySchool = function() {
return this.school;
};
function Student_2011(name, number) {
HNU_student.call(this, name);
this.number = number;
this.sayNumber = function() {
return this.number;
}
}
inheritPrototype(Student_2011, HNU_student);
Student_2011.prototype.graduationTime = 2015;
Student_2011.prototype.sayGraduationTime = function() {
return this.graduationTime;
};
var hiyohoo = new Student_2011('xujian', 20110803203);
object()的作用:将作为参数传入的对象变成实例的原型,该对象的属性被所有实例共享。
weixin_38691256
- 粉丝: 3
- 资源: 945
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0