码迷,mamicode.com
首页 > Web开发 > 详细

js的面向对象

时间:2017-08-09 21:23:35      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:实例   注意   title   ber   func   ons   string   方法   function   

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的面向对象

标签:实例   注意   title   ber   func   ons   string   方法   function   

原文地址:http://www.cnblogs.com/binxyz/p/7327501.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!