首页 > 相术

js bind函数 相等(JS中bind函数和===的严格相等运算符的区别)

js bind函数 相等(JS中bind函数和===的严格相等运算符的区别)

什么是bind函数?

在JavaScript中,bind()函数是指改变并返回传入函数的上下文(即this关键字),使其指向某个指定的对象,而不受当前的上下文所影响。bind()函数不会立即调用传入的函数,而是返回一个新的函数,便于之后调用。

什么是===严格相等运算符?

JavaScript中,===是指比较两个值是否相等。与==不同的是,它不会进行类型转换,必须两个值类型严格相等,否则返回false。

js bind函数 相等(JS中bind函数和===的严格相等运算符的区别)

bind函数和===严格相等运算符的区别

bind函数和严格相等运算符都是用来比较值或者上下文是否相等的。

不同之处在于,bind函数是用来绑定上下文,即改变函数中的this关键字指向的对象,而且它返回的是一个新的函数。

而严格相等运算符则是用来比较值是否相等的,它返回的是一个boolean值。

bind的使用场景

在JavaScript中,当一个函数作为方法调用的时候,它的上下文是调用它的对象。但是有时候需要改变函数调用的上下文。此时可以使用bind()函数绑定上下文,如下:

“`let obj1 = { name: ‘obj1’, logName: function() { console.log(this.name) }}let obj2 = { name: ‘obj2’}let logName = obj1.logName.bind(obj2)logName() // 输出 ‘obj2’“`

上述代码中,我们先定义了一个叫做obj1的对象,里面有一个logName方法,在方法中使用了this关键字来输出name属性值。接着我们定义了一个obj2对象,再用bind()函数绑定了obj2对象作为logName方法的上下文,所以最后调用logName方法输出的是obj2的name属性。

===的使用场景

在JavaScript中,使用严格相等运算符可以判断两个变量的值和类型是否相等。例如:

“`let a = 10let b = ’10’console.log(a === b) // false“`

由于a和b的类型不同,所以输出false。如果使用==进行比较,a和b则会被强制类型转换成相同的类型,然后再比较它们的值,可能会出现错误的结果。

js bind函数 相等(JS中bind函数和===的严格相等运算符的区别)

总结

bind函数和===的严格相等运算符虽然都是用来比较值或者上下文是否相等的,但它们的主要作用和使用场景却不同。bind函数是用来绑定上下文,即改变函数中的this关键字指向的对象,而且它返回的是一个新的函数。而严格相等运算符则是用来比较值是否相等的,它返回的是一个boolean值。

本文链接:http://www.haiyulian.com/h/7953265.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。