JS动态原型

来源:互联网 发布:php动态加密系统 编辑:程序博客网 时间:2024/05/27 21:04

这种方式将所有信息都封装在了构造函数中,而通过在构造函数中初始化原型(仅在必要的情况下),又保持了同时使用构造函数和原型的优点。换句话说,可以通过检查某个应该存在的方法是否有效,来决定是否需要初始化原型。

function Person(name, age, sex) {    // attrs    this.name = name;    this.age = age;    this.sex = sex;    // method    if (typeof this.sayHello != 'function') {        Person.prototype.sayHello = function() {            console.log(this.name);        }    }}

这里只在sayHello()方法不存在的情况下,才会将它添加到原型中。这段代码只会在初次调用构造函数时才会执行。此后,原型已经完成初始化,不需要再做什么修改了。不过要记住,这里对原型所做的修改,能够立即在所有实例中得到反映。因此,这种方法确实可以说非常完美。

原文链接

0 0
原创粉丝点击