Object构造函数/对象字面量:
抛开设计模式不谈,使用最基本的方法,就是先调用Object构造函数创建一个对象,然后给对象添加属性.
var student = new Object(); student.name = "xiao ming"; student.age = 20; student.getName = function () { alert(this.name); }
熟悉javascript 对象字面量的同学,可以换一种更好的写法,至少看上去更简洁。
var student = { name: "xiao hong", age: 18, getName: function () { alert(this.name); } };
缺点:上面方法有个缺点就是,使用同一个接口创建很多类似的对象时,会产生大量重复的代码。这个应该很容易理解了,函数(方法或者类)一般是用来创建公共的方法,上面的对象创建过程,根本没有函数的影子,所以谈不上什么重用。
自定义类型的构造函数:
构造函数可以用来创建特定类型的对象。
function Student(name,age) { this.name = name; this.age = age; this.sayName = function () { alert(this.name); } } var p3 = new Student("ming", 20); var p4 = new Student("hong", 18); alert(p3 instanceof Student); alert(p3.sayName==p4.sayName); //false
缺点:自定义构造函数 的不足之处就是,每个对象都会重新创建自己的方法,其实这些方法功能是一样的(像 sayName),但是它们却不相同(p3.sayName 和p4.sayName不相等)。
构造函数与原型的组合:
function Student(name, age, friends) { this.name = name; this.age = age; this.friends = friends; } Student.prototype = { constructor: Student, sayName: function () { alert(this.name); } };
总结:构造函数与原型的组合 是一种获得广泛认可的创建自定义类型的方法。 也是上面这些方法中的最优方法。
以上是Javascript创建自定义对象几种方式实例汇总的详细内容。更多信息请关注PHP中文网其他相关文章!