我们可以在函数上定义属性和方法(通过属性访问器),那么我可以把函数理解成一个可执行(通过圆括号调用foo())的对象吗?也就是功能比对象更强大一点
function foo () {}
foo.a = "abc"
console.log(foo.a) // 1
foo.bar = function(){
console.log(this.a) // 1
}
那么对象可以通过添加某个属性实行执行功能吗?
我们可以在函数上定义属性和方法(通过属性访问器),那么我可以把函数理解成一个可执行(通过圆括号调用foo())的对象吗?也就是功能比对象更强大一点
function foo () {}
foo.a = "abc"
console.log(foo.a) // 1
foo.bar = function(){
console.log(this.a) // 1
}
那么对象可以通过添加某个属性实行执行功能吗?
jQuery、
underscore、
lodash、
axios、
Vue 这些都是函数呀,也是对象。
比如使用方式 jQuery.isArray jQuery('#app')
axios.get axios()
new Vue()
Vue.version
刚好我写过这些的源码,欢迎阅读。若川的源码文章专栏
具体可以极客时间《看图解 Google V8》这篇文章。不购买可以免费看四篇文章。
02 | 函数即对象:一篇文章彻底搞懂JavaScript的函数特点
1 回答851 阅读✓ 已解决
1 回答1.1k 阅读
2 回答773 阅读
2 回答617 阅读
2 回答601 阅读
1 回答680 阅读
2 回答520 阅读
this关键字访问对象自身,函数也是对象,故函数也有此性质,但不代表其方法就能访问其函数体内的变量;