发布于 2015-05-10 06:55:56 | 54 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的Javascript教程,程序狗速度看过来!

JavaScript客户端脚本语言

Javascript 是一种由Netscape的LiveScript发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。


对象的简单创建

1.通过对象直接量创建

比如 var obj = {};

2.通过new 创建

比如 var obj = new Object(); // 相当于var obj = {};

   var arr = new Array();

3.使用 Object.create()

这个方法有两个参数,第一个参数是这个对象的原型,第二个参数用以对对象的属性进行进一步描述(可选)

var obj = Object.create({x:1});
var obj1 = Object.create(null);
console.log(obj instanceof Object);//true
console.log(obj1 instanceof Object);//false

使用后obj将继承来自原型对象Object的属性,并具有obj.x = 1 的属性值
但当参数为null时,obj1则是一个没有原型的新对象,不会继承任何东西,甚至没有初始的toString()方法。

所以,如果仅仅是想创建一个空对象,有以下三种方式:

var obj = {};
var obj = new Object();
var obj = Object.create(Object.prototype);

对象的简单继承:

可以通过原型继承创建一个新对象

以下函数inherit() 返回一个继承自原型对象p的属性的新对象

function inherit(p){ 
    if(p == null){   // 不能从null中继承
        throw TypeError();
    }
    if(Object.create){   //如果有这个方法就直接使用
        return Object.create(p);
    }
    var t = typeof p;
    if(t !== "object" && t !== "function"){   //要继承的对象  类型要符合
        throw TypeError();
    }
    function f(){ };  //定义一个空的构造函数
    f.prototype = p;  //原型指向要继承的对象p
    return new f();   //创建f对象,此对象继承自p
}

var obj = {x:1};
var obj1 = inherit(obj);
console.log(obj1.x);  // 1

如上,obj1继承了来自obj对象定义的x属性

又如

function inherit(p){ 
    if(p == null){   // 不能从null中继承
        throw TypeError();
    }
    if(Object.create){   //如果有这个方法就直接使用
        return Object.create(p);
    }
    var t = typeof p;
    if(t !== "object" && t !== "function"){   //要继承的对象  类型要符合
        throw TypeError();
    }
    function f(){ };  //定义一个空的构造函数
    f.prototype = p;  //原型指向要继承的对象p
    return new f();   //创建f对象,此对象继承自p
}

var o = {}; //o 继承Object.prototype
o.x = 1;
var p = inherit(o); //p继承o和Object.prototype
p.y = 2;
var q = inherit(p); //q继承p和o和Object.prototype
q.z = 3;
console.log(q.x+q.y == q.z);//true

对象属性相关操作涉及到了原型链的规则
值得注意的是:它总是在原始对象上创建属性或对已有的属性赋值,而不会去修改原型链;在JS中,只有在查询属性时才会体会到继承的存在,而设置属性则和继承无关。

还是代码解释吧

var obj1 = {x:1};
var obj2 = inherit(obj1);
console.log(obj1.x);//1
console.log(obj2.x);//1
obj2.x = 2;
console.log(obj1.x);//1
console.log(obj2.x);//2




相关阅读 :
js 中对象的简单创建和继承使用方法
js中实现多态采用和继承类似的方法
遍历js中对象的属性和值的实例
JavaScript中对象的不同创建方法
浅谈js中对象的使用
js中对象的声明方式以及数组的一些用法示例
js 面向对象的技术创建高级 Web 应用程序
JS中input表单隐藏域及其使用方法
JS中以new形式创建对象的过程
js中遍历Map对象的简单实例
15位和18位身份证JS校验的简单实例
JS原型对象的创建方法详解
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务