美文网首页
JavaScript 中的 this/new、apply/cal

JavaScript 中的 this/new、apply/cal

作者: KrisLeeSH | 来源:发表于2017-04-08 10:50 被阅读15次

this

当使用在函数中时,this指代当前的对象,也就是调用了函数的对象。如果在一个对象上使用点或者方括号来访问属性或方法,这个对象就成了this。如果并没有使用“点”运算符调用某个对象,那么this将指向全局对象(global object)。

new

它和this密切相关。它的作用是创建一个崭新的空对象,然后使用指向那个对象的this调用特定的函数。注意,含有this的特定函数不会返回任何值,只会修改this对象本身。new关键字将生成的this对象返回给调用方,而被new调用的函数成为构造函数。习惯的做法是将这些函数的首字母大写,这样用new调用他们的时候就容易识别了。

apply

第一个参数被当作函数内部中的this使用,第二个参数是一个函数参数的数组。如,

function Person(firstName, lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
}

var me = { firstName: "Kris", lastName: "Lee"};

Person.apply(me, ["John"]); // me是 {firstName: "John", lastName: undefined}

call

同apply相似,不同的是参数不以数组的方式作为call的第二个参数:

var me = { firstName: "Kris", lastName: "Lee"};
Person.call(me, "John", "Snow");  // me是 {firstName: "John", lastName: "Snow"}

bind

var a = function (arg1, arg2) {
  // function content
};

var b = a.bind(this, 12);
// equals
var b = function () {
  var arguments = [12]
}

相关文章

网友评论

      本文标题:JavaScript 中的 this/new、apply/cal

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