Не могу воспроизвести проблему на моей стороне (с помощью Microsoft Edge 44.18362.1.0), похоже, что все работает хорошо на моей стороне, снимок экрана как this , и пример кода, как показано ниже:
<p id="demo"></p>
<script>
// Constructor function for Person objects
function Person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
this.myString = "hello";
// returns the current function scope [object Object]
console.log(this);
// returns "hello"
console.log(this.myString);
var fakeThis = this;
/* In this breakpoint, typing:
* `this` returns [object Window]
* `this.myString` returns undefined
* `fakeThis` returns the correct function scope
* `fakeThis.myString` returns "hello".
*/
console.log(this);
console.log(this.myString);
console.log(fakeThis);
console.log(fakeThis.myString);
debugger;
}
// Create a Person object
var myFather = new Person("John", "Doe", 50, "blue");
// Display age
document.getElementById("demo").innerHTML = "My father is " + myFather.age + ".";
</script>
Пожалуйста, попробуйте очистить кэш и историю, затем повторно протестируйте свой код.Кроме того, вы можете создать новую страницу для проверки кода выше, проверить, работают ли они на вашей стороне.