Javascript面向对象

    xiaoxiao2025-06-21  9

    JS的面向对象: 抽象 封装 继承 多重继承 多态 对象的组成: 犯法:函数、过程、动态的 属性:变量、状态、静态的 JS中可以给任何对象加上任何属性 给对象添加属性: obj.a = 12; 给对象添加方法: obj.show = function(){}; 其实全局的变量和属性都是属于window JS中的Object对象: var obj = new Object(); obj.name='zhangSan'; obj.qq=123456; obj.showName=function(){alert(this.name)}; obj.showQQ=function(){alert(this.qq)}; 调用: var obj = new Object(); obj.showName(); obj.showQQ(); 注意与JAVA中的区别:JS中的类创建对象通过函数实现: createPerson是类名称 function createPerson(name,qq){ var obj = new Object(); obj.nanme = name; obj.qq = qq; obj.showName=function(){}; obj.showQQ = function(){}; return obj; } createPerson.prototype.sum=function(){};//给类追加方法 var p1 = createPerson('zhangSan',123);//该函数成为构造函数 p1.showName();//不加括号则打印字符串 var p2 = createPerson('lisi',456); 可以通过new CreatePerson(); //系统会创建一个Object对象,并为其添加属性和方法,最后返回this对象 调用任何函数都可以加上new function createPerson(name,qq){ this.nanme = name; this.qq = qq; this.showName=function(){}; this.showQQ = function(){}; } var p1 = new createPerson('zhangsan',123); 注意给对象和给类加属性和方法的区别 给类加方法: Array.prototype.sum=function(){}; 给对象加上方法: arr.sum = function(){}; 一般写法: 用构造函数加上属性,用原型加上方法 用json来实现面向对象: var jaon={ name:"abc", qq:123456, showName: function(){}, showQQ: function(){} }; JS里面的继承:继承父亲的属性和方法 JS里面的内置call(obj)方法,可以改变this function A(){this.abc="abc";} function B(){ A.call(this);//继承A的属性 } B.prototype=A.prototype;//继承A的方法 注意JS中存在引用,数组、对象复制都是引用复制 B.prototype.fn=...此时改变了B也改变了A 其实原型就是一个函数数组,为了防止引用带来的问题,使用如下方法: //实现方法的继承 for(var i in A.prototype){ B.prototype[i] = A.prototype[i]; }
    转载请注明原文地址: https://ju.6miu.com/read-1300185.html
    最新回复(0)