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 相关文章推荐
javascript 流畅动画实现原理
Sep 08 Javascript
javascript 浏览器检测代码精简版
Mar 04 Javascript
JavaScript构造函数详解
Dec 27 Javascript
Angularjs material 实现搜索框功能
Mar 08 Javascript
Centos7 中安装 Node.js v4.4.4
Nov 03 Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
Nov 05 Javascript
vue.js打包之后可能会遇到的坑!
Jun 03 Javascript
在微信小程序里使用watch和computed的方法
Aug 02 Javascript
elementUI中Table表格问题的解决方法
Dec 04 Javascript
vue滚动固定顶部及修改样式的实例代码
May 30 Javascript
Javascript实现鼠标点击冒泡特效
Dec 24 Javascript
Node.js API详解之 string_decoder用法实例分析
Apr 29 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+dbfile开发小型留言本
2006/10/09 PHP
PHP中的超全局变量
2006/10/09 PHP
php绝对路径与相对路径之间关系的的分析
2010/03/03 PHP
PHP Error与Logging函数的深入理解
2013/06/03 PHP
PHP中file_exists()判断中文文件名无效的解决方法
2014/11/12 PHP
php使用自定义函数实现汉字分割替换功能示例
2017/01/30 PHP
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
微信小程序组件之srcoll-view的详解
2017/10/19 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
Linux Centos7.2下安装nodejs&amp;npm配置全局路径的教程
2018/05/15 NodeJs
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
2019/04/18 Javascript
js逆向解密之网络爬虫
2019/05/30 Javascript
js 判断当前时间是否处于某个一个时间段内
2019/09/19 Javascript
不要用强制方法杀掉python线程
2017/02/26 Python
Python实现的求解最大公约数算法示例
2018/05/03 Python
Python 虚拟空间的使用代码详解
2019/06/10 Python
查看已安装tensorflow版本的方法示例
2020/04/19 Python
CSS书写规范、顺序和命名规则
2014/03/06 HTML / CSS
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
Aosom西班牙:家具在线商店
2020/06/11 全球购物
精细化工应届生求职信
2013/11/17 职场文书
优秀员工评语
2014/02/10 职场文书
2014大学生全国两会学习心得体会
2014/03/13 职场文书
颁奖典礼主持词
2014/03/25 职场文书
平安校园建设方案
2014/05/02 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
2015年库房工作总结
2015/04/30 职场文书
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL
MySQL数据库查询进阶之多表查询详解
2022/04/08 MySQL
Apache自带的ab压力测试工具的实现
2022/07/23 Servers