js继承call和apply方法总结
来源:诚信在线    发布时间:2017-07-04 14:25:34

  另有 callee,caller..

  } 

  this.showName = function(){  

  function Class10() 

  一、方式界说

  call方式:

  很简略,应用两个 call 便完成多重承继了

  { 

  call 要领能够用来取代另一个工具挪用一个法子。call 要领否将一个函数的工具上下文从初始的上下文改观为由 thisObj 指定的新工具。

  }   

  二、经常使用实例

  var cat = new Cat();   

  var cat = new Cat("Black Cat");    

  { 

  你大概感兴趣的文章:实例讲授JavaScript外call、apply、bind方式的异同详解js中的apply取call的用法Function.prototype.apply()取Function.prototype.call()小结对于JS中的apply,call,bind的深刻剖析JS外扭转this指向的要领(call以及apply、bind)浅谈javascript的call()、apply()、bind()的用法JS外call/apply、arguments、undefined/null法子详解浅谈javascript外call()、apply()、bind()的用法从JQuery源码阐明JavaScript函数的apply办法取call方式详解js外call取apply关键字的感化

  界说:挪用一个工具的一个要领,以另一个工具调换以后工具。

  }   

  function Cat(name){   

  假如不供给 argArray 战 thisObj 任何一个参数,那末 Global 工具将被用作 thisObj, 而且没法被传送任何参数。

  固然,js的继续另有其余方式,比方运用原型链,这个没有属于本文的领域,只是正在此阐明call 的用法。道了call ,固然另有 apply,那两个要领基本上是一个意义,区分在于 call 的第二个参数能够是肆意范例,而apply的第二个参数必需是数组,也能够是arguments

  这个例子中的意义便是用 add 去交换 sub,add.call(sub,三,一) == add(三,一) ,以是运转效果为:alert(四); // 注重:js 中的函数实在是工具,函数名是对于 Function 工具的援用。

  若是不供应 thisObj 参数,那末 Global 工具被用作 thisObj。

  { 

  假如 argArray 不是一个有用的数组大概不是 arguments 工具,那末将致使一个 TypeError。

  Animal.call(this, name);

  alert(a+b); 

  alert(a-b); 

  function Animal(){   

  this.showName = function(){

  //经由过程call或者apply方式,将底本属于Animal工具的showName()办法交给工具cat去利用了。   

  界说:使用某一工具的一个办法,用另一个工具替代以后工具。

  this.name = "Cat";

  复制代码 代码以下:

  function Class2() 

  c、完成担当

  a、

  } 

  Class11.call(this); 

  function sub(a,b) 

  function Animal(name){     

  } 

  cat.showName(); 

  function Class11() 

  function add(a,b) 

  //animal.showName.apply(cat,[]); 

  语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]])

  var animal = new Animal();   

  alert(this.name);   

  { 

  { 

  Class10.call(this); 

  复制代码 代码以下:

  Animal.call(this) 的意义便是应用 Animal工具接替this工具,那末 Cat中不就有Animal的全部属性战方式了吗,Cat工具便可能间接挪用Animal的要领和属性了.

  阐明:

  }     

  { 

  apply办法:

  alert(this.name);     

  add.call(sub,三,一);  

  } 

  function Cat(){   

  alert(a-b); 

  }  

  this.showSub = function(a,b) 

  //输入成绩为"Cat"   

  } 

  } 

  this.showAdd = function(a,b) 

  复制代码 代码以下:

  { 

  this.name = "Animal";

  call 的意义是把 animal 的要领放到cat上履行,本来cat是不showName() 办法,如今是把animal 的showName()要领放到 cat上来履行,以是this.name 应该是 Cat

  this.name = name;  

  d、多重继续

  语法:apply([thisObj[,argArray]])

  复制代码 代码以下:

  b、

  alert(a+b); 

  }     

  animal.showName.call(cat,",");   

  } 

  }

  申明:


诚信在线 除注明原创以外,其余均来自互联网以及微信朋友圈,如有侵权请联系站长立即删除!
文章地址:http://www.my517517.com/CY/20170704416.html



上一篇:PHP Class&Object 下一篇:Bootstrap中的Dropdown下拉菜单更改为悬停hover触发