function classA() { console.log(this); var that = this == window ? {} : this; that.name = "classA"; return that; } new classA(); // 是一个classA的实例 classA(); // 输出了window var obj1 = new classA(); var obj2 = classA(); console.log(obj1.name);//classA
从创建对象开始 创建对象的简单方法就是:使用Object构造函数或者对象字面量.但这两个方法有个缺点:创建相同对象,要编写大量重复代码. 为了避免这个问题——>工厂模式:用函数封装以特定接口创建对象 function createPerson(name, age){ var o = new Object(); o.name = name; o.age = age; o.sayName = function(){ return this.name; } return o; } var p1 = c
js创建方法的两种方式 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/l
javascript是一种“基于prototype的面向对象语言“,与java有非常大的区别,无法通过类来创建对象.那么,既然是面象对象的,如何来创建对象呢? 一.通过”字面量“方式创建. 方法:将成员信息写到{}中,并赋值给一个变量,此时这个变量就是一个对象.例如: var person = (name:'dongjc', work:function() {console.log('write coding')}); 如果{}中为空,则将创建一个空对象: var person = {} //创
例子: class Test { constructor(val) { this.val = val } walk() { console.log(this) console.log('walk') } stop(){ console.log('stop') } } let vm = new Test('jike') console.log(vm) Test.prototype(就是控制台上的__proto__)指向原型对象,Test.prototype,constructor又指向类Test
工厂函数,顾名思义,就是通过一个"工厂的加工" 来创建一个对象的函数 //工厂函数 function createPerson(name,sex){ sex = sex == '男' ? '女' : sex // '加工' return { name:name, sex:sex }; } var p =createPerson('张三','男'); 这种操作在需要创建多个相似对象时可以有效地减少重复代码,但是这样有个缺点就是,每次调用工厂函数创建的对象都是独立的object,不存在继承关系,显然