浅谈javascript面向对象程序设计


Posted in Javascript onJanuary 21, 2015

ECMA-262把对象定义为:“无序属性的 集合,其属性可以包含基本值、对象或者函数”

理解对象,最简单的方式就是通过创建一个Object的实例,然后为它添加属性和方法

        var person = new Object();

        person.name = "Xulei";

        person.age = "23";

        person.job = "前端工程师";

        person.sayName = function () {

            alert(this.name);

        }

还可以这样写

        var person = {

            name: "xulei",

            age: 23,

            job: "前端工程",

            sayName: function () {

                alert(this.name)

            }

        }

一、属性类型:数据属性和访问其属性

        1、数据属性,有4个描述其行为的特性
        [Configurable]:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性,默认值为true
        [Enumerable]:表示能否通过for-in返回属性,默认值为true
        [Writable]:表示能否修改属性,默认值为true
        [Value]:包含这个属性的数据值。默认值为undefined

        var person = {

            name: "xulei"

        }

        这里创建了一个person对象,value值就是“xulei”

要修改属性的默认特性,必须使用ECMAScript5的Object.defineProperty(属性所在的对象,属性的名字,描述符对象)
描述符对象必须是configurable、enumerable、writable、value

        var peron = {}

        Object.defineProperty(peron, "name", {

            writable: false,//属性不能被修改

            value: "徐磊-xulei"

        });
        alert(peron.name);//徐磊-xulei

        peron.name = "徐磊";

        alert(peron.name);//徐磊-xulei

        以上操作在非严格模式下赋值操作会被忽略,如果在严格模式下会抛出异常
        一旦把属性定义为不可配置的就不能把它变回可配置的了。
        在多数情况下都没有必要利用Object.defineProperty()方法提供的这些高级功能。但是对理解javascript非常有用。
        建议读者不要在ie8上使用此方法。

        2、访问其属性,有4个特性
        [Configurable]:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性,默认值为true
        [Enumerable]:表示能否通过for-in返回属性,默认值为true
        [Get]:在读取时调用的函数
        [Set]:在写入属性时调用的函数

Javascript 相关文章推荐
jquery $.each 和for怎么跳出循环终止本次循环
Sep 27 Javascript
jQuery中data()方法用法实例
Dec 27 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
May 20 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
Mar 08 Javascript
DropDownList实现可输入可选择(两种版本可选)
Dec 07 Javascript
JSON对象转化为字符串详解
Aug 11 Javascript
JS与jQuery判断文本框还剩多少字符可以输入的方法
Sep 01 jQuery
在vue中解决提示警告 for循环报错的方法
Sep 28 Javascript
使用vue根据状态添加列表数据和删除列表数据的实例
Sep 29 Javascript
JavaScript中七种流行的开源机器学习框架
Oct 11 Javascript
JS实现获取自定义属性data值的方法示例
Dec 19 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
Dec 30 Javascript
html的DOM中Event对象onabort事件用法实例
Jan 21 #Javascript
封装好的一个万能检测表单的方法
Jan 21 #Javascript
html的DOM中Event对象onblur事件用法实例
Jan 21 #Javascript
JS简单计算器实例
Jan 20 #Javascript
jQuery元素的隐藏与显示实例
Jan 20 #Javascript
DOM基础教程之使用DOM设置文本框
Jan 20 #Javascript
DOM基础教程之使用DOM控制表单
Jan 20 #Javascript
You might like
PHP判断变量是否为0的方法
2014/02/08 PHP
PHP使用curl制作简易百度搜索
2016/11/03 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
PHP实现的简单在线计算器功能示例
2017/08/02 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
js 编写规范
2010/03/03 Javascript
原生js实现查找/添加/删除/指定元素的class
2013/04/12 Javascript
js控制浏览器全屏示例代码
2014/02/20 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
2015/11/07 Javascript
js实现动态创建的元素绑定事件
2016/07/19 Javascript
深入理解requestAnimationFrame的动画循环
2016/09/20 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
关于javascript sort()排序你可能忽略的一点理解
2017/07/18 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
详解bootstrap用dropdown-menu实现上下文菜单
2017/09/22 Javascript
Node.js console控制台简单用法分析
2019/01/04 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
2019/11/06 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
vue 图片裁剪上传组件的实现
2020/11/12 Javascript
解决Python pandas plot输出图形中显示中文乱码问题
2018/12/12 Python
Python中format()格式输出全解
2019/04/12 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
python 抓包保存为pcap文件并解析的实例
2019/07/23 Python
Python 画出来六维图
2019/07/26 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
Python类class参数self原理解析
2020/11/19 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
毕业生个人求职信范文分享
2014/01/05 职场文书
党员大会主持词
2014/04/02 职场文书
青奥会口号
2014/06/12 职场文书
Python 如何安装Selenium
2021/05/06 Python
如何使用PyCharm及常用配置详解
2021/06/03 Python