JS对象的创建和继承
2012-08-11 10:18
260 查看
一下是 JS 对象的常用的对象创建的集中方式:
<script type="text/javascript"> // 在 javascript 中没有类的概念 只有 对象 /*1:定义对象 基于原有的对象进行扩展 // 事项创建动态给对象添加和删除 var obj = new Object();// object 类中的属性是不可枚举的 obj.name = "zhang san"; obj["age"] = 20; // 动态的给 obj 对象添加 age 属性 alert(obj.name); alert(obj.age); delete obj.name; // 删除 属性 alert(obj.name); alert(obj.age); obj.sayName = function(name){ // 动态的给 obj 对象添加 方法 this.name = name; alert(this.name); } obj.sayName("lisi"); */ /* 2: 定义对象的第二种方式 var obj = {username:"zhangsan",password:"12345"}; alert(obj.username); */ /* 3:工厂方法 定义对象 function createObject(){ var object = new Object(); object["name"] = "zhangshan"; object.password = "1234"; object.get = function(){ alert(this.name +"," + this.password); } return object; } var object1 = createObject();// 通过工厂方法 得到 对象 object1.get(); */ /* 带参数的 构造 function createObject(username, password){ var object = new Objcet(); object.username = username; object.password = password; object.get = function(){ alser(this.username +"," + this.password); } }*/ /*让一个函数对象被多个构造函数共享 function get(username, password){ alert(this.username +","+ this.password); } function createObject(username, password){ var object = new Object(); object.username = username; object.password = password; object.get = get return object; } var obj = createObject("张三","1234"); obj.get();*/ /* 4:通过 prototype (原型方式) 来实现 对象 构造 prototype 是 object 对象的一个属性 注意:1:单纯的使用原型 prototype 方式构造类 无法在构造函数中对属性进行付初值, 只能在生产对象后进行改变。 2:使用 prototype 构造函数 会使多个对象 共享一份 对象的引用 function Person(){ } Person.prototype.name = "zhangsan"; Person.prototype.age = 13; Person.prototype.get = function (){ alert(this.name +"," + this.age); } var person = new Person(); person.get(); person.name = "lisi"; person.get();*/ /* 5:使用 动态原型 prototype 方法,是的 每个 对象拥有自己的属性 但是共享一个方法 function Person(){ this.name = "zhangsan"; this.age = 12; if( typeof Person.flage == "undefined"){ Person.prototype.getInf = function(){ alert(this.name +"," + this.age); } this.flage = true; } } var p1 = new Person(); p1.getInf(); var p2 = new Person(); p2.getInf(); */ </script>一下是常用对象的继承方式:
<script type="text/javascript"> /*1: 使用 对象冒充 实现继承 function Parent(username){ this.username = username; this.sayname = function (){ alert(this.username); } } function Child(username, password){ this.temp = Parent; // 将 父类对象的应用 付给 this.temp this.temp(username); // 调用构造 方法,此时构造方法 中 的 this 指向的是Child 所以会在 Child 中生成相应对象 delete this.temp; // 实际上实现了 this的传递 this.password = password; this.sayPass = function (){ alert(this.password); } } var chirld = new Child("李斯","123"); chirld.sayname(); chirld.sayPass();*/ /*2: 使用 call 实现 继承 call 方法是每个 function 中都存在的方法, call(param1, param2,...);第一个参数 指向的是 调用 call 的this function Parent(username){ this.username = username; this.sayname = function (){ alert(this.username); } } function Child(username, password){ Perent.call(this, username); this.password = password; this.sayPass(){ } } */ /*3: 使用 apply 实现继承 apply 实现的原理 与 call 一样 只是 apply为 apply(Param1, new Array()); function Parent(username){ this.username = username; this.sayname = function (){ alert(this.username); } } function Child(username, password){ Parent.apply(this, [username]); // Parent.apply(this, new Array(username)); this.password = password; this.sayPass(){ } } */
相关文章推荐
- JS创建对象方法以及继承方法
- js 创建对象与原型链继承
- 理解js的对象,对象创建,继承
- JS创建对象与继承总结
- js 对象创建及其继承的方法
- JS 实现 创建类、继承、方法添加、对象克隆、数组封装操作
- 浅谈js对象的创建和对6种继承模式的理解和遐想
- 50 JS-4 创建对象 继承
- js(十六)——原型创建对象和继承
- js对象的创建和继承
- JS如何创建对象及实现继承
- js创建对象和原型继承
- js 对象深复制,创建对象和继承
- javascript(js)创建对象的模式与继承的几种方式
- JS如何创建对象和继承对象
- js创建对象继承
- js创建对象的构造函数模式+原型模式和组合继承\Hybrid Pattern & combination inheritance
- js创建对象和继承
- js加强:原型,创建对象分析,继承
- js 对象深复制,创建对象和继承