企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
## ``` function Person(name, age) { this.name = name; this.age = age; //多个对象,会储存对个show的方法,影响性能. this.show = function () { console.log('实例成员'); }; } var p1 = new Person('jack', 20); var p2 = new Person('milan', 20); console.log(p1.show === p2.show); //得到false,证明不是同一个show,是多份 ``` 优化 ``` function Person(name, age) { this.name = name; this.age = age; this.show = show; } function show() { console.log('实例成员'); } var p1 = new Person('jack', 20); var p2 = new Person('milan', 20); console.log(p1.show === p2.show); //true ``` ## 原型 所有的构造函数都有一个属性,就是原型,也叫原型对象.prototype本身就是一个对象.既然是对象,那就可以给它增加方法. ``` function Person(name, age) { this.name = name; this.age = age; } Person.prototype.show = function () { console.log(this.name); } //通过构造函数创建的对象,可以访问Person.prototype中的成员 var p1 = new Person('jack', 20); var p2 = new Person('milan', 18); console.log(p1.show === p2.show); p1.show(); p2.show(); ```