首页 > 代码库 > js的面向对象
js的面向对象
JavaScript不区分类和实例的概念,而是通过原型(prototype)来实现面向对象编程.
原型是指当我们想要创建xiaoming
这个具体的学生时,我们并没有一个Student
类型可用
var Student = {
name: ‘Robot‘,
height: 1.2,
run: function () {
console.log(this.name + ‘ is running...‘);
}
};
var xiaoming = {
name: ‘小明‘
};
xiaoming.__proto__ = Student;
注意最后一行代码把xiaoming
的原型指向了对象Student
,看上去xiaoming
仿佛是从Student
继承下来的:
xiaoming.name; // ‘小明‘ xiaoming.run(); // 小明 is running...
所谓继承关系不过是把一个对象的原型指向另一个对象而已。
上述代码仅用于演示目的。在编写JavaScript代码时,不要直接用obj.__proto__
去改变一个对象的原型,并且,低版本的IE也无法使用__proto__
。Object.create()
方法可以传入一个原型对象,并创建一个基于该原型的新对象,但是新对象什么属性都没有,因此,我们可以编写一个函数来创建xiaoming
:
// 原型对象:
var Student = {
name: ‘Robot‘,
height: 1.2,
run: function () {
console.log(this.name + ‘ is running...‘);
}
};
function createStudent(name) {
// 基于Student原型创建一个新对象:
var s = Object.create(Student);
// 初始化新对象:
s.name = name;
return s;
}
var xiaoming = createStudent(‘小明‘);
xiaoming.run(); // 小明 is running...
xiaoming.__proto__ === Student; // true
js的面向对象
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。