javascript 的原型对象的字面量写法

查看:65
本文介绍了javascript 的原型对象的字面量写法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

function Person(){}

/*
    Person.prototype.name = 'tanbin';
    Person.prototype.age = 22;
    Person.prototype.sayName = function(){alert(this.name);}
*/
字面量写法
Person.prototype={
    name: 'tanbin',
    age: 22,
    sayName: function(){
        alert(this.name);
        }
    }

var p1 = new Person();

p1.sayName();  //这里会出错吗?这种字面量的写法不是会产生这样的问题,new Person()时,返回的对象会有一个[[prototype]]指向原型对象,因为上面重写了Person的原型对象,但没有修改到原来的原型对象。所以p1是不会有sayName属性的。

解决方案

单词打错了?
写法是没错的。关键在于constructor属性要指向构造函数本身。因为这种写法是重写原型对象 而不是给原型对象添加方法。在Es5以上还牵涉到属性 比如可枚举 可配置 可写 等 。
建议的做法是写一个对象 然后对对象进行深拷贝到原型里。

这篇关于javascript 的原型对象的字面量写法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆