Javascript Object 对象学习笔记


Posted in Javascript onDecember 17, 2014

构造函数
new Object()

new Object(value)

参数
value
    可选的参数,声明了要转换成Number对象、Boolean对象或String对象的原始值(即数字、布尔值或字符串)。JavaScript 1.1之前的版本和ECMAScript Vl不支持该对象。

返回值

如果没有给构造函数传递value参数,那么它将返回一个 新创建的Object实例。如果指定了原始的value参数,构造函数将创建并返回原始值的包装对象,即Number对象、Boolean对象或 String对象。当不使用new运算符,将Object()构造函数作为函数调用时,它的行为与使用new运算符时一样。

属性
constructor
对一个JavaScript函数的引用,该函数是对象的构造函数

方法

1.hasOwnProperty( )
检查对象是否有局部定义的(非继承的)、具有特定名字的属性。

    <script type="text/javascript">

            var o = new Object();

            o.name="Tom";

            alert(o.hasOwnProperty("name"));    //true

            alert(o.hasOwnProperty("age"));    //false

        </script>

2.isPrototypeOf()

语法
object.isPrototypeOf(o)

参数
o
任意对象。

返回值
如果object是O的原型,则返回true。如果o不是对象,或者object不是o的原 型,则返回false。

描述
JavaScript对象继承了原型对象的属性。一个对象的原型是通过用于创建并初始化该对象的构造函数的prototype属性引用的。isPrototypeOf()方法提供了判断一个对象是否是另一个对象原型的方法。该方法可以用于确定对象的 类。

示例

var o = new Object(  );                          // 创建一个对象

Object.prototype.isPrototypeOf(o)                // true: o 是一个对象

Function.prototype.isPrototypeOf(o.toString);    // true: toString 是一个函数

Array.prototype.isPrototypeOf([1,2,3]);          // true: [1,2,3] 是一个数组

//下面是执行同样测试的另一种方法

(o.constructor == Object);  // true: o was created with Object(  ) constructor

(o.toString.constructor == Function);  // true: o.toString is a function

/原型则对象本身于原型对象。下面的调用返回true

//说明函数继 Function.prototype和Object.prototyp属性.

Object.prototype.isPrototypeOf(Function.prototype);

3.ProertyIsEnumerable()

语法
object.propertyIsEnumerable(propname)

参数
propname
一个字符串,包含object原型的名字。

返回值
如果object具有名为propname的非继承属性,而且该属性是可枚举的(即用for/in循环可以枚举出它),则返回true。

描述
用for/in语句可以遍历一个对象“可枚举”的属性。但并非—个对象的所有属性都是可枚举的,通过JavaScript代码添加到对象的属性是可枚举的,而内部对象的预定义属性(如方法)通常是不可枚举的。propertylsEnumerable()方法提供了区分可枚举属性和不可枚举属性的方法。但要注意,ECMAScript标准规定,propertyIsEnumerable()方法不检测原型链,这意味着它只适用于对象的局部属性,不能检测继承属性的可枚举性。

示例

var o = new Object(  );                // 创建一个对象

o.x = 3.14;                            // 定义—个属性

o.propertyIsEnumerable("x");           // true属性x是局部的、可枚举的

o.propertyIsEnumerable("y");           //false:o没有属性y

o.propertyIsEnumerable("toString");    //false:toStrlng属性是继承的

Object.prototype.propertyIsEnumerable("toString");  // false: 枚举的

Bug

当标准限制propertylsEnumerable()方法只能检测非继承属性时,明显是错的。 Internet Explorer 5.5按标准实现了该方法。Nestacpe 6.0实现的propertyIsEnumerable()方法考虑了原型链。虽然这种方法可取,但它与标准冲突,所以Netscape 6.1修改了它,以便与IE 5.5匹配。由于标准中有这个错误,因此该方法不是那么有用。

<script>

 var obj = new Object(); 

     obj.title = 'aaa'; 

     obj.funb = function(a, b) 

        { 

         alert(a+b); 

        } 

    alert(obj.title);

    obj.funb(1,2);

</script>

这里一种方法
******************************

<script language="javascript"> 

function object(value,a,b){ 

        this.title = value; 

        this.funb = function(){ 

                      this.a = a; 

                      this.b = b; 

                      alert(a+b); 

                     } 

                  } 

   var obj = new object("aaa",1,2); 

        alert(obj.title); 

        obj.funb();

//这里为对象添加新的方法 

object.prototype.name = "123456"; 

alert(obj.name); 

</script>

这是另一种方法

Javascript 相关文章推荐
jQuery.query.js 取参数的两点问题分析
Aug 06 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
Aug 11 Javascript
基于jquery animate操作css样式属性小结
Nov 27 Javascript
莱鸟介绍window.print()方法
Jan 06 Javascript
input点击后placeholder中的提示消息消失
Jan 15 Javascript
JQuery和PHP结合实现动态进度条上传显示
Nov 23 Javascript
前端编码规范(3)JavaScript 开发规范
Jan 21 Javascript
基于jQuery实现简单人工智能聊天室
Feb 10 Javascript
vue引用js文件的多种方式(推荐)
May 17 Javascript
js中Object.defineProperty()方法的不详解
Jul 09 Javascript
Vue在 Nuxt.js 中重定向 404 页面的方法
Apr 23 Javascript
layui实现数据表格隐藏列的示例
Oct 25 Javascript
node.js中的fs.read方法使用说明
Dec 17 #Javascript
node.js中的fs.mkdirSync方法使用说明
Dec 17 #Javascript
node.js中的fs.mkdir方法使用说明
Dec 17 #Javascript
使用FlexiGrid实现Extjs表格效果方法分享
Dec 16 #Javascript
jQuery+css实现百度百科的页面导航效果
Dec 16 #Javascript
jQuery+PHP打造滑动开关效果
Dec 16 #Javascript
javascript进行四舍五入方法汇总
Dec 16 #Javascript
You might like
php $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
2010/06/21 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
PHP序列化/对象注入漏洞分析
2016/04/18 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
Avengerls vs KG BO3 第一场2.18
2021/03/10 DOTA
复制小说文本时出现的随机乱码的去除方法
2010/09/07 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
jQuery1.6 类型判断实现代码
2011/09/01 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
json格式的javascript对象用法分析
2016/07/04 Javascript
JavaScript数组方法大全(推荐)
2016/07/05 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
2016/08/01 Javascript
Bootstrap面板使用方法
2017/01/16 Javascript
jQuery中ajax获取数据赋值给页面的实例
2017/12/31 jQuery
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
简介Django框架中可使用的各类缓存
2015/07/23 Python
python中redis的安装和使用
2016/12/04 Python
Python类和对象的定义与实际应用案例分析
2018/12/27 Python
详解Django-restframework 之频率源码分析
2019/02/27 Python
搞定这套Python爬虫面试题(面试会so easy)
2019/04/03 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
Python API len函数操作过程解析
2020/03/05 Python
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
2012/06/05 面试题
软件测试面试题
2014/01/05 面试题
最受欢迎的自我评价
2013/12/22 职场文书
北京奥运会口号
2014/06/21 职场文书
县长“四风”对照检查材料思想汇报
2014/10/05 职场文书
南京导游词
2015/02/03 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python