call 方法在使用一个指定的this值和若干个指定的参数值的前提下调用某个函数或方法.

call 方法在使用一个指定的this值和若干个指定的参数值的前提下调用某个函数或方法.web

注意:该函数的语法与 apply() 方法的语法几乎彻底相同,惟一的区别在于,apply()方法接受的是一个参数数组,而 call()方法接受的是一系列参数列表。编程

了解完这两个方法的概念后,咱们来一步一步理解他们的应用.数组

 

改变方法内this的指向微信

咱们先来看下面这个例子app

 

var name = "编程的人";函数

var age = 1;this

var person = {对象

name:"公众号:bianchengderen",继承

age:20博客

}

function say(){

console.log("我叫:"+this.name+",年龄:"+this.age)

}

say();// 我叫: 编程的人,年龄: 1

say.call(person);//我叫: 公众号:bianchengderen,年龄:20

 这两种调用执行的方式不同,他们的结果也不同,不同在于say方法里面的this指向了不一样的对象,第一次执行指向的是window,而咱们以call方式执行,将say方法里面的this指向了person对象.

这是否是有点冒充别人的感受.那咱们这样有什么做用了?固然本身能够多多想一想,到底能作什么! 咱们继续往下面走.

 

实现继承机制

继承,这是高级面向对象的一种特性,用call咱们能够将JAVASCRIPT有这种特色.

在看下面这个例子以前,必须好好理解上面的例子.

 

function Person(){

this.name = "编程的人";

this.age = 20;

}

function Student(){

Person.call(this);

this.school = "地球";

}

var student = new Student();

//下面打印出来: 编程的人,20,地球

console.log(student.name,student.age,student.school);

在这个例子里,Student函数继承了Person的name和age属性,就是经过Person.call(this)来实现,理解上面的例子后,应该是不难理解的.因此Student即拥有了Person的特色,又有本身的个性,好比这个this.school.

在这里,咱们没有涉及到加入参数的传递,是方便你们的理解,须要加入参数传递,你们能够敲代码试一试,看看效果怎么样!

咱们就先讲这两个例子吧,省得你们越理解越糊涂.什么事情都是须要简单入手,会了以后才会追求更深的一面!

还有,记得也加入apply的应用实例咯!

 

 本文属于吴统威的博客,微信公众号:bianchengderen 的原创文章,转载时请注明出处及相应连接:http://www.wutongwei.com/front/infor_showone.tweb?id=158 ,欢迎你们传播与分享.

相关文章
相关标签/搜索