在JavaScript中,通常可以使用构造函数来创建特定类型的对象。诸如Object和Array这样的原生构造函数,在运行时会自动出现在执行环境中。 此外,我们也可以创建自定义的构造函数。
举例如下:
function Person(name, age, job) {
this.name = name
this.age = age
this.job = job
}
这里是用new来实例化一个person对象:
var person1 = new Person('Weiwei', 27, 'Student')
var person2 = new Person('Lily', 25, 'Doctor')
以这种方式调用构造函数实际上会经历以下4个步骤:
1、创建一个新对象(实例)
2、将构造函数的作用域赋给新对象(也就是重设了this的指向,this就指向了这个新对象)
3、执行构造函数中的代码(为这个新对象添加属性)
4、返回新对象
Js中的对象分为三类:
1,内置对象(静态对象)
2,本地对象(非静态对象)
3,宿主对象
首先来说宿主对象,宿主,顾名思义,就是js运行和存活的地方,它的生活环境:就是
DOM(文档对象模型)和BOM(浏览器对象模型).
其次说一下内置对象。首先问一个问题,大家有没有见过
var oMath = new Math()object is not a function
没见过对吧?那你有没有见过Array.push()呢?肯定也没见过,现在你很想试一试是怎么个情况,结果就是:undefined is not a function 。说到这大家应该都明白了,有一些对象,他们直接时候自己的属性和方法,比如Math.ceil()无需实例化,这就是内置对象。而必须实例化才能使用其方法和属性的就是本地对象。
常见的本地对象:Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、
URIError。
内置对象(只有两个):Math,Global(不常用,但是想想一下我,我们使用的类似于isNaN()、parseInt()和parseFloat()方法等都是它的方法。)那么留下一个思考题:json是什么呢?