问题描述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方法也就不同。添加回答
举报
0/150
提交
取消
