这个JavaScript类中的声音属性如何不正确隐私?另外,如何在课外访问它?我在一个视频中看到了这个并试图访问课堂外的声音属性而不能。
<script type="text/javascript">
$(document).ready(function () {
getMessage();
});
function getMessage()
{
$.get("load_messages.php?id=<?php echo $ConversationID?>", function (result) {
$('#refresh').html(result);
setTimeout(getMessage,3000);
});
}
</script>
谢谢!
答案 0 :(得分:4)
它不是私有的,因为您可以在创建类的实例后从外部访问它。
class Dog {
constructor() {
this.sound = 'woof';
}
talk() {
console.log(this.sound);
}
}
let dog = new Dog();
console.log(dog.sound); // <--
// To further drive the point home, check out
// what happens when we change it
dog.sound = 'Meow?';
dog.talk();
答案 1 :(得分:0)
您需要使用new
创建该类的实例。如果您没有该类的实例,则构造函数尚未执行,因此尚无声音属性。
var foo = new Dog();
console.log(foo.sound);
或
这将为Dog类分配一个默认属性,而不必创建它的新实例。
Dog.__proto__.sound = 'woof';
console.log(Dog.sound);
答案 2 :(得分:0)
您需要创建班级的实例。
class Dog {
constructor() {
this.sound = 'woof';
}
talk() {
console.log(this.sound);
}
}
console.log(new Dog().sound);