让你了解 JavaScript 中的原型
|
如上面的实例, age 属性附加在 studObj1 实例上. 然而 studObj2 实例没有这个属性, 因为 age 属性只在 studObj1 实例上定义了. 那么, 如果想在后期添加一个属性且能被所有的实例所共享, 该怎么办? 答案这就今天主角 Prototype. Prototype 是一个对象, 默认情况下与JavaScript中的任何一个函数或对象有关, 只是唯一区别在于函数的prototype 属性是可访问和可修改的,而对象的prototype属性是不可见的. 默认情况下任何一个函数包含 Prototype 对象, 如下图: totype 对象是一种特殊类型的可枚举对象, 可以将需要附加属添加到其上,这些属性将在其构造函数的所有实例之间共享。 我自己是一名从事了多年开发的web前端老程序员,目前辞职在做自己的web前端私人定制课程,今年年初我花了一个月整理了一份最适合2019年学习的web前端学习干货,各种框架都有整理,送给每一位前端小伙伴。
因此, 把上面的示例中使用函数的 prototype 来添加属性,以便于所有对象中都可以访问到, 如下: Object 原型对象包含如下 属性 和 方法 属性描述constructor返回创建该实例的构造函数__proto__指向创建该实例的构造函数的原型对象.方法描述hasOwnProperty()返回一个布尔值,指示对象是否包含指定的属性作为该对象的直接属性,而不是通过原型链继承。isPrototypeOf()返回一个布尔值,指示指定的对象是否位于调用此方法的对象的原型链中。propertyIsEnumerable()返回一个布尔值,该布尔值指示指定的属性是否可枚举。toLocaleString()返回本地格式的字符串.toString()返回对象字符串形式.valueOf()返回指定对象的原始值. Chrome 和 Firfox 将对象的原型表示为 __proto__, 而内部引用为 [[Prototype]]. IE不支持,只有IE11包含它. 修改原型 如上所述, 每个对象都能链接到函数的原型对象. 如果您更改了函数的原型, 则只有新对象将链接到更改后的原型. 所有其他现有对象仍然链接到旧的函数原型. 下面实例来演示这个场景: (编辑:周口站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

