1.JS函数是一个对象吗?
是
2.所有函数都有prototype原型对象如何理解
- 一个函数可以构造出对象
- 被一个函数构造出来的对象,__proto__属性都指向函数的prototype
也就说: obj.__proto__ = initExtend.prototype 这里,initExtend是一个函数,而函数就是对象,既然是对象就会有__proto__属性
3.函数的参数是对象情况,给这个对象赋值一个函数属性
-
Vue的源码这么写(部分截图)
-
当函数的参数是普通对象的时候,我这样写
但是这有什么意义?这个普通对象在函数的内部,当这个函数执行完销毁了,里面的对象也就没了
-
当函数的是
原型对象
的时候,我这么写
你可以感受到引用传递的强大
4.函数的静态变量和实例变量
JS中,我们说过函数就是对象,那么对象就可以通过.操作来为自身增加新的数据
- 函数的静态变量
- 函数的实例变量
实例变量就是--当一个函数被new的时候,生成一个新的对象,那么在对象的体内会出现定义的实例变量; 通常用this来设置实例对象
在下面这张图,我可以得出结论:js实例对象无法直接使用
3. 关于JS实例对象不能使用静态变量(全局变量),Java能不能使用呢
可以