js创建对象

阅读数:52 评论数:0

跳转到新版页面

分类

html/css/js

正文

一、工厂模式

function createPerson(name,age,job){
    var o = new Object();
    o.name = name;
    o.age = age;
    o.job = job;
    o.sayName = function(){
        alert(this.name);
    };
    return o;

}

工厂模式虽然解决了冗余代码的问题,但却没有解决对象识别的问题(即怎么知道一个对象的类型)。

二、构造函数模式

function Person(name,age,job){
    this.name = name;
    this.age = age;
    this.job = job;
    this.sayName = function(){
        alert(this.name);
    };

}

var person1 = new Person("zhang",29,"doctor");

使用构造函数的主要问题,就是每个方法都要在每个实例上重新创建一遍。

三、原型模式

我们创建的每个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。

function Person(){}
Person.prototype.name = "zhang";
Person.prototype.sayName = function(){
    alert(this.name);
}



相关推荐

echarts 是百度公司前端开发一个图表库,支持柱状图、饼状图、k线图、map图、热导向图、折线图。 主要采用canvas画图。完全免费。 hi

因为map的key可以为任何类型, 包括对象. 但是JSON语法, key只能为string. 所以不能直接对JSON.stringify(Map). 1.但是可以先把map转换为

一、package.json package.json文件只能锁定大版本,也就是版本号的第一位,并不能锁定后面的小版本。 二、package-lock.json package-lock.json文件

module.exports = { "plugins": { "postcss-import": {},

/** * 参考文档 * 【eslint英文文档】https://eslint.org/docs/user-guide/con

dva是一个基于redux和redux-sage的数据流方案, 然后为了简化开发体验, dva还额外内置了react-router和fetch. 参考: <a href="http

umi是一个可插拔的企业级react应用框架, umi以路由为基础. 参考: <a href="https://umijs.org/zh/guide/#%E7%89%B9%E6%8

Dva是基于redux、redux-saga和react-router的轻量级前端框架及最佳实践沉淀。 <a href="https://dvajs.com/guide/conce

方式一:JavaScript里有setTimeout()方法 setTimeout(function(){ aler

在需要调试的js文件顶部或&lt;script&gt;&lt;/script&gt;开头处加一行代码: <pr