编程助手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,则等同于指向全局对象。
posted @ 2016-08-05 18:34  西河  阅读(113)  评论(0编辑  收藏  举报