问题描述
- javascript面向对象的问题
-
请教一下各位大神. 今天写JS时候遇到这样一个问题, 就是下面这段js代码不要②这一行的时候,是可以正常运行的,浏览器没有报错.
但是加了这一行,就报错. 只有把①②改成this.name和this.age才可以. 能给我讲讲为什么嘛var p = {
name:'stephen',
age:23,
info:function(){
document.write('我的名字是:' + name①);
document.write('我的年龄:' + age②);
}
}
p.info();
解决方案
var p = { name:'stephen', age:23, info:function(){ document.write('我的名字是:' + name①); document.write('我的年龄:' + age②); } } p.info();
不管1,2实际都不是你预期的,没加2能运行,是因为name刚好是window的全局变量,所以没报错,但实际不是你想要的。
这里应该改成
var p = { name:'stephen', age:23, info:function(){ document.write('我的名字是:' + p.name); document.write('我的年龄:' + p.age); } } p.info();
因为你的name和age是p这个对象内的属性。所以要加上p
解决方案二:
JavaScript中的面向对象
javascript面向对象
JavaScript面向对象特性
时间: 2024-09-17 04:15:21