js对象概念

js对象

this 对象

this 指向和调用方式有关 函数调用 对象方法 new表达式

  • ==普通函数调用==,this为==全局对象或是undefined==
  • ==作为对象的方法==,this为==那个对象==
  • new 表达式,this为以该函数为原型的新创建的对象
  • 使用 apply/call指定 this 这里this的指向根据函数的上下文
  • 用bind绑定固定的this
  • 事件处理函数中的this是当前的触发事件的DOM元素(event.currentTarget)
  • IE attachEvent添加的事件处理函数中this为window

函数

1.函数声明和 函数表达式 区别

  • 在解释器 加载数据时候 有一个函数声明提升 function declaration hoisting
  • 函数声明在任何代码之前可用
  • 函数表达式必须等到解析器执行到它所在的代码行

2.函数调用的三种方式:

  • obj.myFunc();
  • myFunc.call(obj,arg);
  • myFunc.apply(obj,[arg1,arg2..]);
  • call 连续参数 apply 接受 array arguments
  • fun.call(thisArg[, arg1[, arg2[, …]]])
  • fun.apply(thisArg, [argsArray])
  • 参考文档

3.构造函数:

这个新创建的对象的 prototype 被指向到构造函数的 prototype。

  • 通过 new 关键字方式调用的函数都被认为是构造函数。
  • 在构造函数内部
  • 也就是被调用的函数内
  • this 指向新创建的对象 Object。

4.原型对象

  • 原型对象:有 constructor 指针指向构造函数. 是不安全属性容易被重写!
  • 实例:指向原型对象的内部指针 [proto ]. constructor 属性默认调用prototype对象的constructor.
  • All objects inherit a constructor property from their prototype:

arguments对象

  1. 转换成数组
  2. var args = Array.prototype.silce.call(arguments);
  3. callee 属性 指向拥有arguments对象的函数

object 对象

1.Object.defineProperty() 参数 对象,属性,描述符(descriptor)
descriptor: configurable emumerable writable value 中一个或多个。

  • configurable true 可以从对象属性删除 false 不能从对象属性删除 delete会报错
  • emumerable
  • writable true 可读写, flase 只读
  • value 属性的值
  • 访问器属性getter setter 使用 writable value

装作特别有钱