【发布时间】:2012-10-17 00:07:05
【问题描述】:
可能重复:
Why does javascript object show different values in console in Chrome, Firefox, Safari?
我对使用 javascript 的 OOP 概念还是很陌生。我试图了解 javascript 属性的绑定。 javascript 是否按顺序执行以下代码?
// main.js
function NameClass(){
this.name = "John"
this.age = 25
}
NameClass.prototype.change_my_name = function(new_name){
this.name = new_name
}
NameClass.prototype.change_my_age = function(new_age){
this.age = new_age
}
// main.html
<html>
<head>
<title>Javascript tutorial</title>
<script src="main.js"></script>
<script>
var nc = new NameClass()
console.log("nc before modification")
console.log(nc) // Prints Doe
nc.change_my_name("Doe")
console.log("nc after modification")
console.log(nc) // Prints Doe
</script>
</head>
<body></body>
</html>
现在,这里有什么技巧?
- 为什么我会看到两次都显示“Doe”?
- 为了第一次显示“John”而第二次显示“Doe”,我必须在这里使用什么机制?
【问题讨论】:
-
我假设您使用的是 Chrome?这是 Chrome 开发者控制台中记录对象的一个已知错误。
-
对。
nc.name显示的值很好。
标签: javascript oop binding