object

javascript沙箱模式

安稳与你 提交于 2020-02-11 01:03:54
沙箱模式解决了命名空间模式的如下几个缺点: 1.对单个全局变量的依赖变成了应用程序的全局变量依赖。在命名空间模式中,是没有办法使同一个应用程序或库的2个版本运行在同一个页面中。 2.对这种以点分割的名字来说,需要输入更长的字符,并且在运行时需要解析更长的时间,比如MYAPP.utilities.array 顾名思义,沙箱模式提供了一个可用于模块运行的环境,且不会对其他模块和个人沙箱造成任何影响。 Sanbox.modules = {}; Sanbox.modules.array = function(box){   var array_string = '[object Array]',   opt = Object.prototype.toString;   box.isArray = function(a){     return opt.call(a) === array_string;   } } Sanbox.modules.object = function(box){   var obj_string = '[object Object]',   opt = Object.prototype.toString;   box.isObject = function(a){     return opt.call(a) === obj_string;   } }

JavaScript面向对象编程

百般思念 提交于 2020-02-11 00:16:04
概述 在前端开发中,JavaScript并没有想象中那么简单,不只是简单的UI输入验证,还有面向对象。对于刚刚JavaScript入门的你来说,可能会稍稍惊讶:哇,虽然前端开发好找对象,妹子多,但是JavaScript真的可以向对象编程么!!!是的,你没有看错,本文将通过一些小例子,逐步讲解JavaScript的面向对象编程。仅供学习分享使用,如有不足之处,还请指正。 ECMA Script有两种开发模式: 函数式(过程化):小的功能,独立。 面向对象(OOP):体现了继承,封装,多态的思想,但是ECMA Script没有类的概念。 创建一个对象 创建对象,然后给对象赋值属性和方法。如下所示: this表示new Object实例化出来的对象,this要放在一个作用域下,比如box.run(){},这个是box作用域下的函数,才可以用this来表示box。 如果在全局作用域下,this,表示window,如:document.write(this);//[object Window] 1 var box=new Object(); //创建对象 2 box.name='hex'; //添加属性 3 box.age=100; 4 box.run=function(){ 5 return this.name+this.age+'is running...'; /

JS数据类型和堆栈+变量比较和值的复制+参数传递和类型检测

…衆ロ難τιáo~ 提交于 2020-02-10 23:26:10
变量命名 变量名:字母 数字 下划线 美元符$ jquery: $ $.each() $ === jQuery underscore( js的一个函数库) : _ _.each() 关键字 : if for 保留字 : class 推荐有意义的命名: buttonCancel button_cancel btnCancel 数据类型和堆栈 基本类型(可以修改) : 4 str true undefined null 引用类型(不能修改) : { } [ ] var score = 40; score = 50; 上面属于覆盖,不属于修改 var str = "hello"; var newStr = str.replace("h", ""); document.write( str + "/" + newStr); 字符串操作返回新的字符串,原字符串没有改变 var obj = {}; console.log(obj); obj.name = "cyy"; obj.age = 25; obj.name = "cyy2"; delete obj.age; console.log(obj); 引用类型的属性可以添加,可以修改,可以删除 var name = "cyy"; name.age = 25; console.log(name.age);//undefined

开发 WPF 中,使用 System.Windows.SystemParameters 获得屏幕分辨率 - ZDY \' LOVE | 关于摄影、旅行、户外、游记、攻略、感想、编程...

帅比萌擦擦* 提交于 2020-02-10 23:22:46
原文: 开发 WPF 中,使用 System.Windows.SystemParameters 获得屏幕分辨率 - ZDY ' LOVE | 关于摄影、旅行、户外、游记、攻略、感想、编程... //得到屏幕工作区域宽度 double x = SystemParameters.WorkArea.Width; //得到屏幕工作区域高度 double y = SystemParameters.WorkArea.Height; //得到屏幕整体宽度 double x1= SystemParameters.PrimaryScreenWidth; //得到屏幕整体高度 double y1 = SystemParameters.PrimaryScreenHeight; 我喜欢的 WPF Window 大小设置: Height="{Binding Source={x:Static SystemParameters.PrimaryScreenHeight}, Converter={StaticResource RatioConverter}, ConverterParameter='0.8'}" Width="{Binding RelativeSource={RelativeSource Self}, Path=Height, Converter={StaticResource

代理类学习

亡梦爱人 提交于 2020-02-10 22:40:00
类对象操作时候在外面加一层代理,加一层壳,比如写日记功能,写在外面不接触具体操作对象,相当于代理对厂家的宣传作用。 下面是JDK动态代理 //makeProxy.javapackage daili; import com.sun.org.apache.xpath.internal.SourceTree; import java.lang.reflect.*; import java.util.Arrays; /* 这个类生成代理对象 JDK动态代理 1:Proxy:是所有动态代理的父类,专门用于生成代理类或者生成代理对象 这里的proxy是 java.lang.reflect Class<?>(返回值) getPRoxyClass()方法用于生成对象的Class对象,就是电脑计算机中的class对象,属性就是class object(返回值) newProxyInstance()方法用于生成代理对象的实例 2:InvocationHandler:完成动态代理的整个过程,这是一个接口,自己写一个类实现它 里面有一个invoke方法(返回值是object) */ public class makeProxy { //动态代理 : 目标对象 如何获取代理对象 代理要干什么 //目标对象 private caculate cal ; //获取代理对象需要执行方法,此时需要new

variables declaration with same name C++

二次信任 提交于 2020-02-10 19:40:39
问题 Is this allowed? Class A{ ... ... }; A a; //Global object int main() { A a; // Local object . . . . return 0; } Here a global object has been declared after the class definition, but also a local variable has been declared. Is it ok? Why? 回答1: It's perfectly legal to "hide" the declaration of an object, with another declaration in tighter scope. Within your main function, a will refer to the local variable. Outside the main function, a will refer to the global variable. As to whether it's "ok

variables declaration with same name C++

放肆的年华 提交于 2020-02-10 19:34:21
问题 Is this allowed? Class A{ ... ... }; A a; //Global object int main() { A a; // Local object . . . . return 0; } Here a global object has been declared after the class definition, but also a local variable has been declared. Is it ok? Why? 回答1: It's perfectly legal to "hide" the declaration of an object, with another declaration in tighter scope. Within your main function, a will refer to the local variable. Outside the main function, a will refer to the global variable. As to whether it's "ok

C++ 拾遗

眉间皱痕 提交于 2020-02-10 19:29:24
一、c++两个基本的运算符: &(取址运算符) 和 *(间接访问运算符/解引用指针) 首先是&运算符:当它后面跟一个变量名的时候,给出这个变量名的地址. #include <iostream> using namespace std; int main() { int a=5,b=6,c=7,d=8; double e=3.1415; //单独赋值,并且*和p_a紧挨着 int *p_a=&a; //多个赋值(既有指针,又有普通变量) int * p_b=&b,* p_c=&c,*p_d=&d,temp=100; //单独赋值,double类型 double * p_e=&e; } 二、指针和引用的定义和性质区别: (1)指 针是一个变量,只不过这个变量存储的是一个地址 ,指向内存的一个存储单元;而 引用跟原来的变量实质上是同一个东西 ,只不过是原变量的一个 别名 而已。如: int a=1;int *p=&a; int a=1;int &b=a; (2)可以有const指针,但是没有const引用; (3) 指针可以有多级 ,但是引用只能是一级(int **p;合法 而 int &&a是不合法的) (4)指针的值可以为空,但是引用的值不能为NULL,并且引用在定义的时候必须初始化; (5)指针的值在初始化后可以改变,即指向其它的存储单元,而 引用在进行初始化后就不会再改变 了。

JavaScript中,{}+{}等于多少?

三世轮回 提交于 2020-02-10 13:34:13
最近,Gary Bernhardt 在一个简短的演讲视频“ Wat ”中指出了一个有趣的 JavaScript 怪癖: 在把对象和数组混合相加时,会得到一些意想不到的结果。 本篇文章会依次讲解这些计算结果是如何得出的。 在 JavaScript 中,加法的规则其实很简单,只有两种情况: 把数字和数字相加 把字符串和字符串相加 所有其他类型的值都会被自动转换成这两种类型的值。 为了能够弄明白这种隐式转换是如何进行的,我们首先需要搞懂一些基础知识。 注意 :在下面的文章中提到某一章节的时候(比如§9.1),指的都是 ECMA-262 语言规范(ECMAScript 5.1)中的章节。 让我们快速的复习一下。 在 JavaScript 中,一共有两种类型的值: 原始值(primitives) undefined null boolean number string 对象值(objects)。 除了原始值外,其他的所有值都是对象类型的值,包括数组(array)和函数(function)。 类型转换 加法运算符会触发三种类型转换: 转换为原始值 转换为数字 转换为字符串 通过 ToPrimitive() 将值转换为原始值 JavaScript 引擎内部的抽象操作 ToPrimitive() 有着这样的签名: ToPrimitive(input,PreferredType?) 可选参数

[译]JavaScript中,{}+{}等于多少?

霸气de小男生 提交于 2020-02-10 13:32:42
最近, Gary Bernhardt 在一个简短的演讲视频“ Wat ”中指出了一个有趣的JavaScript 怪癖:在把对象和数组混合相加时,会得到一些你意想不到的结果.本篇文章会依次讲解这些计算结果是如何得出的. 在JavaScript中,加法的规则其实很简单,只有两种情况:你只能把数字和数字相加,或者字符串和字符串相加,所有其他类型的值都会被自动转换成这两种类型的值. 为了能够弄明白这种隐式转换是如何进行的,我们首先需要搞懂一些基础知识.注意:在下面的文章中提到某一章节的时候(比如§9.1),指的都是ECMA-262语言规范( ECMAScript 5.1 )中的章节. 让我们快速的复习一下.在JavaScript中,一共有两种类型的值:原始值(primitives)和对象值(objects).原始值有: undefined , null , 布尔值(booleans), 数字(numbers),还有字符串(strings).其他的所有值都是对象类型的值,包括数组(arrays)和函数(functions). 1.类型转换 加法运算符会触发三种类型转换:将值转换为原始值,转换为数字,转换为字符串,这刚好对应了JavaScript引擎内部的三种抽象操作:ToPrimitive(),ToNumber(),ToString() 1.1 通过ToPrimitive()将值转换为原始值