我不太理解为什么要在参数前面加一个$符号,而且加了$符号就不能通过**.**的方式拿到子属性
因为域不一样。
因为js中 $ 是合法标识符的一部分。
标识符(Identifier)就是名称的专业术语。JavaScript 标识符包括变量名、函数名、参数名和属性名。
标识符的命名规则:
①区分大小写,Myname与myname是两个不同的标识符。
②标识符首字符可以是以下划线(_)、美元符($)或者字母开始,不能是数字。
③标识符中其它字符可以是下划线(_)、美元符($)、字母或数字组成的
所以美元符($)与字母,数字和下划线(_)一样都可以做为变量名、函数名、参数名和属性名,
比如 “$router”是一完整的属性名,不能只写router。
就好像是 “document”不能写成 “ocument”一样。
因为他就这么规定的啊。$router是 全局的路由实例,是router构造方法的实例。 https://www.jianshu.com/p/fa0b5d919615 。这个就绑定在vue实例上,全局都能访问。
举个例子一般引入axios都会在main.js
import axios from 'axios';
this.$axios=axios; //然后全局都能使用axios了只需要this.$axios就能使用例如this.$axios.get()