1

什么是Javascript的公有属性/方法,私有属性/方法,静态属性/方法,共享属性/方法?

公有是指,在外部环境中可以获取的,可以直接通过实例对象用”.”运算符操作获得。(在构造函数中用this进行声明)

私有是指,在外部环境中不能直接访问,该属性/方法只能在对象的构造函数内访问。(声明在构造函数里的变量和方法,没有用到this)

静态是指,属性/方法是归属于类的,而非实例对象。可以直接通过类名来调用得到。

共享是指,实例对象之间,共享属性和方法,借助向原型对象添加属性和方法,可以实现。

(虽然都有“公共”的含义,但是可以看出静态的和共享的之间的区别了吧)

为什么把方法写在prototype中而不写在构造函数中

参考: https://blog.csdn.net/FJ20100...
因为写在构造函数中更消耗内存。写在构造函数中的话,每次用构造函数new一个对象的话,都会创建一份新的属性和方法存到内存中。而写在原型对象中就没有这个问题,对于这个类,只有一个原型对象,因此写在原型对象之下的方法也不会多次复制,永远只有一份。
(如果写在原型对象中,多个实例调用这个方法,会有什么问题吗?比如对同一个对象进行操作?)验证方法 方法用 ==进行比较,即内存地址的比较


青草怪味豆
95 声望4 粉丝

Practice Makes Perfect!