javascript代码实例教程-javascript属性详解

发布时间:2019-02-07 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-javascript属性详解脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。   在js中,没有公共属性和私有属性之分,只有全局变量(全局属性)和局部变量以及对象属性。但是,程序员可以通过一定的技巧来实现面向对象语言的功能。下面我们来介绍这几种属性(变量)

 

全局变量也叫全局属性

 

复制代码

/* 1.通过VAR关键字声明。这种声明方式只能在全局作用域内,不能在函数块内部*/

var a = ''; 

 

/*2.直接给未声明的变量赋值,这种方式在任何情况都有效。不过,一般程序员都

应当极力避免这种情况。这种隐士的声明一个全局属性是很容易出错的*/

a = '';

 

/*3.通过window对象,这种方式可以在任何地方使用。如果需要定义一个全局属性,

我推荐使用这种。*/

window.a = 'wname' ;

 

/*4.用this。前提是要保证this是指向window,不过这是一种在意外情况下才会发生

的。*/

function x(){ this.a ='aname';}

x();

 

/*总结:以上4种情况可以分为两大类。第一种和后面3种。第一类必须是在全局作用域类,

也是常用的方式;第二类可以不在全局作用域内声明,除了第3种,其他都应该避免使用。

还有,第一类是不可以使用delete来删除的,第二类则可以*/

 

var a = 'ss';

delete a // false

 

window.a = '33' 

delete a // true;

复制代码

 局部变量

 

复制代码

/*在js中,只有函数才产生作用域。所以局部变量是在函数内部声明*/

function x(){

    // a就是局部变量,从外部无法访问和修改。

    var a = 'ws'; 

    // 但是我们可以返回这个局部变量给外部使用。

    return a;

}

 

//很少情况下可以在外部修改局部变量。下面是一种

 

function foo(){

    var o = {name: 'we'};

 

    return function(){

        return o;

    };

 

}

 

var f= foo();

 

var obj = f();

 

obj.name = 'ws';

 

f(); // {name: 'ws'}.即当闭包返回一个对象时,这个对象在外部是可能被修改的

复制代码

对象属性

 

复制代码

//1.先有对象后有属性

var o = {}

//可以通过以下方式给对象添加属性

o.name ='名称';

o['a'] = '另一个属性'

//属性的值也可以是函数

o.method = function(){};

 

//2.对象和属性同时存在

var o = {

    'name': '名称',

    'a': '另一个属性',

    ';method': function(){

 

    }

}

//对于这种方式,属性最好加上引号

 

//3.通过函数new一个对象

function(name){

    this.name = name

}

复制代码

静态属性

 

复制代码

/*在java中,通过【类名.属性】调用的方式,成为静态属性,也叫类属性。当然也可以

通过实例来调用,但是编译器会发出警告。在js中,我们把一个函数叫做一个类。这个函

数名第一个字母通常大写(大写非必须)*/

function PErson(){

 

}

//静态属性

Person.a = 'ws';

//但是这个属性不可以通过实例调用

var p = new Person();

 

p.a; // undefined

复制代码

私有属性

 

复制代码

/*在js中,没有私有的概念。但是,可以通过闭包(局部变量)来实现*/

function Person (){

    var name = '起个名吧';

    this.getName = function(){

        return name;

    }

    this.setName = function(newName){

        name = newName;

    }

}

 

var p = new Person();

 

p.getName();

 

p.setName('张飞');

 

p.getName(); //张飞

 

/*像这样的,就只能通过getName、setName来读取写入属性name,可以对

name写入的值进行控制。但是,如果name是一个对象的话,外部代码就可以修

改它的值了*/

// 当属性方法返回的是一个对象

function Person(){

    var info = {name: '未初始化'}

    this.getInfo = function(){

        return info;

    }

}

 

var p = new Person();

 

var pInfo = p.getInfo();// { name="未初始化"}

 

pInfo.age = 32; // 不小心修改了p对象的信息

 

p.getInfo(); //  { name="未初始化", age=32}。对象被改变了。

 

/*针对这种情况,由于外部只是读操作,所以,我们可以返回一个副本。这样就不用

担心内部对象被修改了*/

function Person(){

    var info = {name: '未初始化'}

    this.getInfo = function(){

        // 如果info有多个属性,可以用for in循环遍历

        return {name: info.name};

    }

}

复制代码

 在最新的js规范中,还可以通过get、set和defineProperty、definePRoperties来定义对象的属性。这些是很强大的方法,下次再介绍。

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-javascript属性详解全部内容,希望文章能够帮你解决javascript代码实例教程-javascript属性详解所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。