javascript中新建类,对象方法总结
来源:互联网 发布:美工岗位说明书 编辑:程序博客网 时间:2024/06/05 19:25
boxBaseAttr = {
width : "26px",
height : "40px",
position: "absolute",
top : "30px",
background : "url(38.gif) no-repeat center top",
zIndex : 10
};
方法二:var person = new Object();
person.name = "Nicholas";
person.age = 29;
方法三:
var person = {
name :"apple",
age:29,
}
方法四:
var person = {
"name" :"apple",
"age":29,
}
方法五:
var person = {};
person.name = "Nicholas";
person.age = 29;
方法六:
function displayInfo(args){
var output = "";
if(typeof args.name == "string"){
output = "Name:"+args.name;
}
if (typeof args.age == "number"){
output = "Age:"+args.age;
}
alert(output);
}
displayInfo({
name:"Nicholas",
age:29}):
displayInfo({
name:"Greg",
}):
创建函数的方法:
方法一:
function sum (a,b){
return a+b;
}
方法二:
var sum = function(a,b){
return a+b;
};
方法一和方法二的区别是:
方法一与别调用的代码在书写的先后顺序上无要求,但是方法二要先实现方法后,在下面再调用,否则会报“unexpected identifier”错误。
方法三:
var sum = new Function("a","b","return a+b");不推荐,效率低,第一次是解析常规ECMAScript代码,第二次是解析传入构造函数中的字符串。
创建类的方法:
方法一:工厂模式
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;
}
var person1= createPerson("Nicholas",29,"Software Engineer ");
var person2 = createPerson("Greg",27,"Doctor");
工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题,即怎么知道一个对象的类型。
方法二:
构造函数的模式
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.sayName = function(){
alert(this.name);
};
var person1= new Person("Nicholas",29,"Software Engineer ");
var person2 = new Person("Greg",27,"Doctor");
方法三:原型模式:
function Person(){
}
Person.prototype.name = "Nicholas";
Person.prototype.age = 29;
Person.prototype.job = "Software Engineer";
Person.prototype.sayName = function(){
alert(this.name);
};
var person1 = new Person();
person1.sayName();
}
更简单的原型语法:
function Person(){
}
Person.prototype = {
name:"Nicholas",
age:29,
job:"Software Engineer",
sayName:function(){
alert(this.name);
}
}
方法四:组合使用构造函数模式和原型模式
这种是最常见的方式,构造函数模式用于定义实例属性,原型模式用于定义方法和共享的属性
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.friends = ["Shelby","Court"];
}
Person.prototype = {
constructor:Person,
sayName:function(){
alert(this.name);
}
}
方法四:动态原型模式:
function Person(name,age,job){
this.name = name;
this.age= age;
this.job=job;
if(typeof this.sayName != "function"){
Person.prototype.sayName = function(){
alert(this.name);
};
}其中if语句只要检查一个属性或方法就好,在if语句中实现需要的类方法或属性,typeof也可以改为instanceof,
var friend = new Person("Nicholas",29,"Software Engineer");
friend.sayName();
}
方法五:寄生构造函数模式
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;
}
var person1= new Person("Nicholas",29,"Software Engineer ");
var person2 = new Person("Greg",27,"Doctor");
可以为Array等类添加方法和属性,但是得到的对象不能依赖instanceof 来确定对象类型,建议可以使用别的方法的情况下,不要使用这种模式。
方法六:稳妥构造函数模式
function Person(name,age,job){
var o = new Object();
//私有变量和方法
var name = "name";
fucntion a (){
}
//public方法
o.sayName = function(){
alert(name);
};
}
var friend = Person("Nicholas",29,"Software Engineer");
friend.sayName();
同样得到的对象不能依赖instanceof 来确定对象类型- javascript中新建类,对象方法总结
- JavaScript中Stringd对象方法总结
- JavaScript中创建对象方法总结
- javaScript中Array对象的方法总结
- javascript中对象总结
- java新建对象的4中方法
- javascript中创建对象的几种方法总结
- JavaScript中判断对象类型的几种方法总结
- javascript开发:javascript创建对象方法总结
- JavaScript中string对象方法
- javascript中数组(Array)对象和字符串(String)对象的常用方法总结
- 可以在static方法中新建对象,实现调用
- Javascript中字符串方法总结
- javascript引用对象的方法 (总结)
- javascript操作数组对象的方法总结
- javascript操作日期对象的方法总结
- javascript操作Math对象的方法总结
- javascript操作字符串对象的方法总结
- HDOJ 4080 Stammering Aliens
- 实达打印机-BP3000XE设置参数
- xxx
- FLEX发布问题,流错误2032,找不到swz文件
- Memcache问题集锦
- javascript中新建类,对象方法总结
- AT&T与蓝色巨人IBM牵手,试水大数据驱动公共服务
- Android共有五种布局方式
- Big Endian与Little Endian区别
- SDUT 1-2 输出N个数的平方和立方值
- php100视频里的一个会员登录系统超时和权限实例
- Struts2验证框架 Struts2Validator
- ubuntu 12.04修改工作区间个数
- Lua解释器