jscall不传参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jscall不传参数相关的知识,希望对你有一定的参考价值。

jscall不传参数,那是因为它这个参数设置是一个稳定性的,所以才会不上传,所以也就是只有独立的参数才会不传参数。 参考技术A 在函数中,时常会有改变this指向的场景,call apply bind均可以

call

call fn.call(obj,a,b,c) call中传递多个参数,第一个参数是this的指向,第二个以及之后的参数是传递给函数的参数
执行机制 将函数中的this指向变为call的第一个参数,接受call 传递过来的第二个及其之后的参数,执行要操作的函数,并把第二个以及之后的参数传递给函数
细节,在非严格模式下,当call不传递参数或者传递的参数是null/undefined的时候,this的指向为window,在严格模式下,当call不传参数或者传递的参数是null/undefined,ths的指向是传递的参数 undefined/null
apply

apply的用法与call的用法相同,只不过,apply传递的第二个以及之后的参数是放在数组中,

bind

bind的用法与call相同,只不过,bind可以改变函数执行的时机

let obj =
name:"123"

let fn = function()
console.log(this)

document.onClick=fn.bind(obj)
如果使用call,apply 函数会在onclick事件绑定的时候执行,使用bind在onClick触发的时候才会执行

作用

改变this的指向,实现继承,求最大值,让类数组借用数组原型上的方法
参考技术B JSCall是一种通过javascript在不同的页面之间传递参数的技术,因此如果不传递任何参数,则JSCall无法执行操作

JScall,apply,bind

【JS】call,apply,bind

const steven = {
    name: "Steven",
    phoneBattery: 70,
    charge: function (level) {
      this.phoneBattery = level
    }
}

const becky = {
  name: "Becky",
  phoneBattery: 30,
}

steven.charge(100)
console.log(steven);

// steven 的充电宝给 becky 用,并充电到 100
// steven.charge.call(becky, 100)
// console.log(becky);

// steven 的充电宝给 becky 用,不过不是立即充电,而是稍后再充
var beckyCharge = steven.charge.bind(becky)
// 将 becky 的手机充电到 100
beckyCharge(100)
console.log(becky);

以上是关于jscall不传参数的主要内容,如果未能解决你的问题,请参考以下文章

java Web工程,如何在不传参数的情况下,判断WebService接口是不是开放

实现接口参数为空时不传参,刷新页面时参数重置问题

sql存储过程参数可省略吗? 存储过程中参数都有默认值,调用时可不可以不传参数呢?

ionic4 sqlite 的 executeSql 方法第二个参数不传会报错

javascript进行重定向页面时用window.href.location为啥有时不传参数?

ios如何定义函数时可以传一个参数或多个参数或不传 我记得有个变量名加到函数名后边就能实现这个效果 不