一分钟让你理解构造函数原型链关系
作者:互联网
<script>
function Sty(name, age) {
this.name = name
this.age = age
// 放在这里的话 每次实例化,sing是个函数,属于复杂数据类型,每次都会开辟不同的内存空间,会存在浪费内存的情况 // this.sing = function() { // console.log("方法") // } } // 若是放在构造函数的原型对象上,可以实现共享该方法 Sty.prototype.sing = function() { console.log("方法") }
// 每次实例化,sing是个函数,属于复杂数据类型,每次都会开辟不同的内存空间,会存在浪费内存的情况 var sy = new Sty('aa', 18) var sd = new Sty('bb', 18)
// 这样的话,就可以实现sing方法的共享了 sy.sing() sd.sing()
// 为什么可以通过sy和sd 这些对象可以访问sing方法呐?是因为JS会默认个他们加上一个对象原型叫_ _proto_ _属性
// 而该属性指向的是构造函数Sty的prototype原型对象,所以可以用它们去使用sing方法 </script>
// 放在这里的话 每次实例化,sing是个函数,属于复杂数据类型,每次都会开辟不同的内存空间,会存在浪费内存的情况 // this.sing = function() { // console.log("方法") // } } // 若是放在构造函数的原型对象上,可以实现共享该方法 Sty.prototype.sing = function() { console.log("方法") }
// 每次实例化,sing是个函数,属于复杂数据类型,每次都会开辟不同的内存空间,会存在浪费内存的情况 var sy = new Sty('aa', 18) var sd = new Sty('bb', 18)
// 这样的话,就可以实现sing方法的共享了 sy.sing() sd.sing()
// 为什么可以通过sy和sd 这些对象可以访问sing方法呐?是因为JS会默认个他们加上一个对象原型叫_ _proto_ _属性
// 而该属性指向的是构造函数Sty的prototype原型对象,所以可以用它们去使用sing方法 </script>
标签:function,sy,name,一分钟,原型,sing,Sty,构造函数 来源: https://www.cnblogs.com/ruby888/p/16461706.html