为了账号安全,请及时绑定邮箱和手机立即绑定

判断JS构造函数的实例中的属性函数是否占用同一片内存

判断JS构造函数的实例中的属性函数是否占用同一片内存

精慕HU 2019-03-07 16:52:41
问题描述JS构造函数内部用function声明的函数,与利用this声明的函数有何不同,为何function声明的函数,实例化后仍指向同一片内存,而this声明的函数反之问题出现的环境背景及自己尝试过哪些方法console.log()输出问题相关代码// 请把代码文本粘贴到下方(请勿用图片代替代码)function Person(age,name) {            this.age = age;            this.name = name;            function showSex() {                console.log("girl");             }            this.say = function() {}         }           var p1 = new Person();        var p2 = new Person();        console.log("showSex函数",p1.showSex === p2.showSex);           console.log("say函数",p1.say === p2.say);           Person.prototype.run = function () {            console.log("1米每秒");         }        console.log("run函数",p1.run === p2.run);        console.log("run函数",p1.run === Person.prototype.run);        // 双等号和三等号在比较对象的时候是没有任何区别的。实际看到的错误信息是什么?这一段输出结果为true,console.log("showSex函数",p1.showSex === p2.showSex); //true
查看完整描述

3 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

Person中默认声明的函数:

 function showSex() {    console.log("girl");
},该函数只在内部有效,只能内部调用,获取的p1.showSex 为 undefined而使用this.say = function() {},该函数是挂载在当前创建的对象上的,属于对象所有,不同的对象,其say方法也就不同。


查看完整回答
反对 回复 2019-03-07
  • 3 回答
  • 0 关注
  • 1211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号