【发布时间】:2016-04-05 23:21:23
【问题描述】:
我是 JavaScript 的初学者,我发现一个概念非常混乱。考虑下面的代码:
var person = {
firstName :"Penelope",
lastName :"Barrymore",
// Since the "this" keyword is used inside the showFullName method below, and the showFullName method is defined on the person object,
// "this" will have the value of the person object because the person object will invoke showFullName ()
showFullName:function () {
console.log (this.firstName + " " + this.lastName);
}
}
person.showFullName (); // Penelope Barrymore
人是一个类或函数还是只是一个变量?
如果假设那个人是一个类,那么代码person.showFullName (); 是不是调用它的正确方式,因为在 C# 或我们编写的任何其他语言中
person perObj = new person();
perObj.showFullName();
?
【问题讨论】:
-
我也一直觉得这很令人困惑。而且不可靠。我很想看到详细的答案,但我的解决方案总是:不要使用它,它不会咬你。我会创建一个
function Person,然后是一个person = new Person。有时全静态就足够了,然后我会在任何地方使用person.firstName等,所以没有this。当然只是一个意见。 -
您觉得哪些方面令人困惑或不可靠?对象可以有方法的事实?
-
在 JavaScript 中你确实没有有类(虽然它们可以被模拟)。在这里,对象直接继承自其他对象。你应该阅读 JS 原型。
-
忘记任何其他语言的课程。
-
var person ... 提示:var 表示“变量”,那么人可能是什么?
标签: javascript javascript-objects