<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
//1.创建Object,为其添加属性方法
var person = new Object();
person.name = "Nicholas";
person.age = 29;
personal.job = "Software Engineer";
personal.sayName = function () {
alert(this.name);
};
/*
缺点:使用一个接口创建很多对象,会产生大量重复代码
*/
//2.工厂模式
function createPersonal(name, age, job) {
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.sayName = function () {
alert(this.name);
};
return o;
}
/*
工厂模式解决了对象相似问题,却没有解决对象识别问题(怎样知道一个对象的类型)
*/
//3.构造函数模式
function Person(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
this.sayName = function () {
alert(this.name);
};
}
/*
构造函数模式没有显式的创建对象,直接将方法和属性赋给了this对象,没有return语句
要创建Person的新实例,必须使用new操作符,实际经历4个步骤
a.创建一个新对象
b.将构造函数的作用域赋给新对象(this指向这个新对象)
c.执行构造函数,为新对象添加属性
d.返回新对象
构造函数模式创建的对象可以识别其类型,但每个方法都要在每个实例上重建一遍
*/
//创建两个实例,创建两个相同的方法没必要,可以把函数定义转到方法外部
function Person(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
this.sayName = sayName;
}
function sayName() {
alert(this.name);
}
/*
这样解决了两个方法做同一件事的的问题,但在全局作用域上定义的函数只能被某个对象调用,如果对象定义需要很多方,就要定义很多全局函数,自定义的引用类型就没有封装 性了
*/
//4.原型模式
function Person() {
}
Person.prototype.name = "Nocholas";
Person.prototype.age = 29;
Person.prototype.job = "Software Engineer";
Person.prototype.sayName = function () {
alert(this.name);
}
/*
原型模式所有参数默认取得相同的值,属性若为引用类型,多个实例之间互相影响
*/
//5.构造函数原型混合模式
function Person(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
}
Person.prototype.sayName = function () {
alert(this.name);
}
/*
构造函数用于定义实例属性,原型用于定义方法和共享属性,。eigenvalue实例都会有一份自己实例属性的副本,同时享用着对共享方法的引用
*/
</script>
</body>
</html>
分享到:
相关推荐
Android几种自定义 Progress很好用 很好用
压缩包中含有六个自定义view的实列” 仿优酷菜单、水波纹、自定义view实现viewpager、滑动开关、下拉菜单等
然而,当默认样式无法满足需求时,我们可以考虑以下几种自定义方法: 1. **绘制自定义检查标记**:Android的多选框默认显示一个勾选标记。我们可以通过重写`CheckBox`的`onDraw()`方法,或者创建一个自定义`...
本资源包包含了几个自定义绘制控件的源码和DEMO,帮助开发者深入理解这一技术。下面我们将详细探讨自定义绘制控件的基本概念、实现方法以及可能的应用场景。 一、自定义绘制控件的概念 自定义绘制控件是指不依赖...
本文将深入探讨几种常用的自定义Dialog的实现方法,以及如何通过自定义来满足各种复杂的UI需求。 首先,我们了解下Dialog的基本概念。Dialog在Android中是一种轻量级的窗口,通常用于显示临时信息或者请求用户的...
本资料主要探讨了Android界面中的几种常用自定义Dialog实现方法,以下是对这些知识点的详细说明: 1. **自定义对话框的基本构建** 在Android中,创建一个自定义Dialog通常需要继承`AppCompatDialogFragment`或`...
因此,自定义进度条成为了一种常见实践。 1. **自定义属性定义** 要自定义进度条,首先需要在`res/values/attrs.xml`中定义自定义属性,如进度条的颜色、宽度、高度、动画效果等。例如,可以定义一个属性`...
自定义地图的使用方法非常简单,用户只需将提供的.ovmap文件导入到奥维互动地图软件中。对于电脑用户,可以直接将文件拖放到软件界面,或者通过软件的“导入地图”功能进行加载。对于手机端用户,可以通过邮件、蓝牙...
自定义ComboBox的过程通常包括以下几个步骤: 1. **创建新类**:首先,你需要创建一个新的类并继承自System.Windows.Forms.ComboBox。这将让你的自定义控件拥有ComboBox的所有基本功能,并且可以在其中添加自己的...
在Python3中,有三种主要的方式来导入自定义模块,让我们详细地探讨每一种方法: 1. **直接导入**: 当你的自定义模块(如`pwcong`)与主执行文件(如`main.py`)位于同一目录或其父目录下时,可以直接使用`import...
在“Code Templates”界面,你可以看到预设的几种注释类型,如类、方法、构造函数等。点击对应的模板,如"Comments -> Methods",然后在右侧的编辑框中输入或修改自定义的注释内容。可以使用变量来动态插入如作者名...
在Swing中,对话框是一种特殊的窗口,用于向用户提供临时信息或者需要用户进行交互的情况。自定义对话框则允许开发者根据需求定制对话框的外观和行为,以满足特定的应用场景。 一、Swing中的对话框类型 Swing提供了...
首先,自定义按钮控件的设计通常涉及到以下几个关键点: 1. **外观设计**:自定义按钮的外观可以根据项目需求进行个性化定制,包括形状、颜色、边框、阴影、文字样式等。开发者可能需要使用图形设计工具(如Sketch...
在实现这些自定义ComboBox时,我们还需要注意以下几点: - 布局管理:确保控件的布局适应不同屏幕尺寸和分辨率,可以使用QLayout进行灵活的布局。 - 样式表:利用QT的样式表(QSS)来定制控件的外观,如边框、背景...
自定义控件的创建通常涉及以下几个关键知识点: 1. **继承与派生**:在C#中,自定义控件通常是通过继承已有的系统控件(如Button、Label等)或UserControl类来实现的。这样可以从父类继承一些基本属性和方法,并...
内置几种了常用的弹窗,十几种良好的动画,将弹窗和动画的自定义设计的极其简单;目前还没有出现XPopup实现不了的弹窗效果。 内置弹窗允许你使用项目已有的布局,同时还能用上XPopup提供的动画,交互和逻辑封装。UI...
自定义UITableViewCell主要涉及以下几个方面: 1. 创建UITableViewCell子类:通过继承UITableViewCell,我们可以添加自定义的UI元素,如UILabel、UIImageView、UIButton等,并在子类中重写layoutSubviews方法来布局...
自定义View通常涉及到以下几个步骤: 1. **创建新类**:首先,你需要继承一个已有的View类,如`View`、`TextView`或`ImageView`等,然后在新的类中添加自定义功能。 2. **重写onDraw()方法**:这是绘制View的核心...
默认情况下,DataGridView提供了几种内置的ColumnType,如`DataGridViewTextBoxColumn`、`DataGridViewTextBoxColumn`等。然而,在某些情况下,这些内置类型可能无法满足我们的需求,这时就需要创建自定义的Column...