首页 > 网站 > WEB开发 > 正文

<JavaScript 读书笔记二>

2024-04-27 14:10:34
字体:
来源:转载
供稿:网友

<javaScript 读书笔记二>

1.类与对象

在JS中,创建对象(Create Object)并不完全是我们时常说的创建类对象,JS中的对象强调的是一种复合类型,JS中创建对象及对对象的访问是极其灵活的。JS对象是一种复合类型,它允许你通过变量名存储和访问,换一种思路,对象是一个无序的属性集合,集合中的每一项都由名称和值组成(听起来是不是很像我们常听说的HASH表、字典、健/值对?),而其中的值类型可能是内置类型(如number,string),也可能是对象。(在笔记一种有代码示例)

2.用function关键字模拟class

在function中用this引用当前对象,通过对属性的赋值来声明属性。如果用var声明变量,则该变量为局部变量,只允许在类定义中调用。

function myClass() {            this.id = 5;            this.name = 'myclass';            this.getName = function() {                return this.name;            }        }        var my = new myClass();        alert(my.id); // 5        alert(my.getName()); // myclass                 

>>上面我们用到了this,在这里也说明一下this的用法以及含义!联想的学习。

a.this是js的一个关键字,随着函数使用场合不同,this的值会发生变化。但是总有一个原则,那就是this指的是调用函数的那个对象。

b.纯粹函数调用。

function test() {    this.x = 1;    alert(x);}//调用test();

这里的this就是全局变量。

var x = 1;function test() {    alert(this.x);}test();//1var x = 1;function test() {    this.x = 0;}test();alert(x);//0//这里的全局

c.作为方法调用,那么this就是指这个上级对象。

function test() {    alert(this.x);}var o = {};o.x = 1;o.m = test;o.m(); //1

d.作为构造函数调用。所谓构造函数,就是生成一个新的对象。这时,这个this就是指这个对象。

function test() {    this.x = 1;}var o = new test();alert(o.x);//1

e.最后还有前面说的apply调用

var x = 0;function test() {    alert(this.x);}var o = {};o.x = 1;o.m = test;o.m.apply(); //0o.m.apply(o);//1//当apply没有参数时,表示为全局对象。所以值为0。

3.在函数体中创建一个对象,声明其属性再返回

在函数体中创建对象可利用第一点的方法,或先new Object();再为各属性赋值。

function myClass() {            var obj =            {                'id':2,                'name':'myclass'            };            return obj;        }        function _myClass() {            var obj = new Object();            obj.id = 1;            obj.name = '_myclass';            return obj;        }        var my = new myClass();        var _my = new _myClass();        alert(my.id);        alert(my.name);        alert(_my.id);        alert(_my.name);


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表