美文网首页程序员
JavaScript对象

JavaScript对象

作者: chasing_dream | 来源:发表于2018-03-28 23:33 被阅读29次

什么是对象?

JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。

对象的属性:

反映该对象某些特定的性质的,如:字符串的长度、图像的长宽等;

对象的方法:

能够在对象上执行的动作。例如,表单的“提交”(Submit),时间的“获取”(getYear)等;

tip:
js中函数就是一个对象,函数在没有返回值时默认返回的一个对象(underfunded),一个函数也可以作为参数传递给另外一个函数,这种方式通常被叫做 callback 模式。

(1)对象是单个实物的抽象:一个人、一辆车可以是对象,一个网页、一个服务器也可以是对象,当实物被抽象成对象的时候,实物之间的关系就变成了对象之间的关系,那么我们就可以模拟现实的情况,对对象进行编程;

(2)对象就好比是一个容器,它里面包含了属性和方法,属性指的对象的状态,方法指的是对象的行为,例如我们把动物抽象成对象,那么属性记录动物的种类,而方法表示动物的某种行为(奔跑、进食等),在JS中,方法就是对象里面的一个函数。

创建对象;

JavaScript对每个创建的对象都会设置一个原型,指向它的原型对象。

当我们用obj.xxx访问一个对象的属性时,JavaScript引擎先在当前对象上查找该属性,如果没有找到,就到其原型对象上找,如果还没有找到,就一直上溯到Object.prototype对象,最后,如果还没有找到,就只能返回undefined。

创建一个Array对象:
var arr = [1, 2, 3];

其原型链是:

arr ----> Array.prototype ----> Object.prototype ----> null
//js中万物皆对象  所以数组原型也可以是说是Object.prototype

tip:Array.prototype定义了indexOf()、shift()等方法,因此你可以在所有的Array对象上直接调用这些方法。

创建一个函数时
function foo() {
    return 0;
}
函数也是一个对象,它的原型链是:

foo ----> Function.prototype ----> Object.prototype ----> null
构造函数忘记写new怎么办?
function Student(props) {
        this.name = props.name || '匿名'; // 默认值为'匿名'
        this.grade = props.grade || 1; // 默认值为1
    }

    Student.prototype.hello = function() {
        alert('Hello, ' + this.name + '!');
    };

    function createStudent(props) {
        return new Student(props || {})
    };

    var xiaoming = createStudent({
        name: '小明'
    });
    console.log(xiaoming.grade);  // 1

相关文章

网友评论

    本文标题:JavaScript对象

    本文链接:https://www.haomeiwen.com/subject/orqpcftx.html