编程助手JavaScript学习库-面向对象编程笔记
声明:本文内容来源于编程助手APP的JavaScript学习库
- prototype对象的作用,就是定义所有实例对象共享的属性和方法,所以它也被称为实例对象的原型,而实例对象可以视作从prototype对象衍生出来的。
- 构造函数是一个函数,同时也是一个对象,而所有构造函数都有prototype属性(其实是所有函数都有prototype属性),所以所有对象都有自己的prototype原型对象。
- JavaScript语言的对象体系,不是基于“类”的,而是基于构造函数(constructor)和原型链(prototype)
- 由于原始类型的值不是对象,所以不能使用instanceof运算符判断类型。
利用instanceof
运算符,还可以巧妙地解决,调用构造函数时,忘了加new命令的问题
function Fubar (foo, bar) {
if (this instanceof Fubar) {
this._foo = foo;
this._bar = bar;
}
else return new Fubar(foo, bar);
}
- 构造函数中的
this
,指的是实例对象。 - 找出数组最大元素
JavaScript不提供找出数组最大元素的函数。结合使用apply
方法和Math.max
方法,就可以返回数组的最大元素。
var a = [10, 2, 4, 15, 9];
Math.max.apply(null, a)
//输出为15
- 对象本身的所有属性,可以用
Object.getOwnPropertyNames
方法获得。 - 对象本身的属性之中,有的是可以枚举的(enumerable),有的是不可以枚举的。只获取那些可以枚举的属性,使用Object.keys方法。
- 如果
call
方法或apply
方法没有参数,或者参数为null或undefined,则等同于指向全局对象。