如您所知,在javascript函数中是对象,我的问题是使用以下代码:
function Car() {
this.color = "black";
}
console.log(Car.name);
console.log(Car.color);
输出:未定义车辆
由于我可以访问Car对象的 name 属性,为什么我无法以相同的方式访问Car对象的 color 属性。
另一个例子:
console.log("Hello".charAt.name);
console.log("Hello".charAt.length);
输出:charAt 1
此处 charAt 是String对象的一种方法,但我使用其名称作为参考来访问名称和长度属性,而不仅仅是这些属性以及一些方法,例如: hasOwnProperty 和 isPrototypeOf
我的问题是这些属性和方法究竟是什么?
答案 0 :(得分:2)
在课堂上,name
是类Car
的属性,而color
是类Car
的实例的属性。您只能在创建新实例时访问color
属性。
function Car() {
this.color = "black";
}
var car = new Car()
document.write(Car.name +'<br>');
document.write(car.color +'<br>');
&#13;
答案 1 :(得分:0)
color
的媒体资源function Car
;
function Car() {
this.color = "black";
console.log(this)//Window {}
};
/*you need to set Car.color */
Car.color = 'white';
console.log(Car.name);//Car
console.log(Car.color);//white
Car();
console.log(color)//black
//Car
//white
//Window {}
//black
虽然在属性声明中自动设置了name属性..
当正常调用时,在非严格的情况下,函数内的this
引用Window对象(在浏览器上是全局的);
另一方面,如果你将函数作为构造函数调用this
引用返回对象:
function Car() {
this.color = "black";
console.log(this) //object instance assigned to mazda
};
var mazda = new Car();
console.log(mazda.color)