直接贴代码和结果
function Motor_Vehicle(mytype){
this.type=mytype;
}
function Car(){
this.Color='red';
this.Num=4
}
Car.prototype=new Motor_Vehicle("轿车");
var car1=new Car();
console.log(car1)//结果可以看到_proto_中有owner属性,值为王五
console.log(car1.__proto__.owner)//这里也能打印出来结果
console.log(car1.owner)//这里就是undefined了
Car.prototype.owner="王五";//王五在这里定义赋值的,按照GO的顺序,应该是前面三行中,都可以看到owner,但是没有值才对,为什么前两条有值,而最后一条为undefined呢?
function Motor_Vehicle(mytype){
this.type=mytype;
}
function Car(){
this.Color='red';
this.Num=4
}
Car.prototype=new Motor_Vehicle("轿车");
var car1=new Car();
console.log(car1)//结果可以看到_proto_中有owner属性,值为王五
console.log(car1.__proto__.owner)//这里也能打印出来结果
console.log(car1.owner)//这里就是undefined了
Car.prototype.owner="王五";//王五在这里定义赋值的,按照GO的顺序,应该是前面三行中,都可以看到owner,但是没有值才对,为什么前两条有值,而最后一条为undefined呢?
解决方案 »
- 用JS写的《回到顶部》为何没有效果???
- 学习怎么用JQuery是不是不需要学Javascript?
- 初学者怎样建网站?
- 如何实现Listbox选择后,光标自动移动到下一个输入框。但是鼠标滑轮滚动时,光标不能转移。
- 请教大虾,急~~~
- 表格添加删除行的操作
- 自定义的右键菜单里面怎么加入复制,粘贴功能???
- javaScipt中有这样的两个函数吗? /[^\d]/g.test(strPage) ,isNaN(strPage) //strPage=form.page.value
- js获取gridview某行指定的值
- js的问题 函数问题
- 新人求助:外部JS为什么在浏览器不能显示
- js 作用域链的问题
其实控制台打印对象,只是一个地址引用。当你去展开时展示的是最终的结果。如果你要打印即时的结果应该使用JSON.stringify,比如:function Motor_Vehicle(mytype){
this.type=mytype;
}
function Car(){
this.Color='red';
this.Num=4
}
Car.prototype=new Motor_Vehicle("轿车");
var car1=new Car();
console.log(JSON.stringify(car1.__proto__))//自然就不会有owner属性
console.log(car1.__proto__)//必须展开才能看到owner属性
Car.prototype.owner="王五";
这个问题老有人提。
var obj = {
name: 'test'
} setTimeout(() => {
obj.name = 'tttzy1';
console.log('test1')
}, 500);
console.log(obj);定时器执行完之前点开还是原来的值;
等到定时器执行完在点开输出的对象,值时变化后的;
如果你在console.log()输出之后改变了对象(数组)的属性,当你点击三角展开属性时,会重新读取对象(数组)当前的属性,也就是显示出来的是你点击三角展开时的属性,而不是执行console.log()时的属性。解决方法是用console.log(JSON.stringify(obj));以字符串方式输出