JavaScript中的对象和对象构造函数?
在面向对象编程的生活世界中,我们已经知道类和对象的重要性,但是与其他编程语言不同,JavaScript没有其他语言所具有的传统类。但是JavaScript具有对象和构造函数,它们在大多数情况下以相同的方式工作以执行相同的操作。
- 构造函数是与“new”关键字一起使用的常规JavaScript函数。构造函数在JavaScript中有两种类型,即内置构造函数(数组和对象)和自定义构造函数(定义特定对象的属性和方法)。
- 当我们需要一种创建可以多次使用而不必每次都重新定义对象的对象“type”的构造函数时,构造函数会很有用,这可以使用Object Constructor函数来实现。按照惯例,大写的构造函数名称会将其与常规函数区分开。
例如,考虑以下代码:
function Automobile(color) { this.color=color; } var vehicle1 = new Automobile ("red");
函数“Automobile()”是一个对象构造函数,其属性和方法即“color”在其内部声明为关键字“this”。然后使用关键字“new”将使用对象构造函数定义的对象转换为即时对象。
调用新的Automobile()时,JavaScript执行以下两项操作:
- 它创建一个新的新对象(实例)Automobile()并将其分配给变量。
- 它将对象的构造函数属性“color”设置为Automobile。
Object.is()方法
Object.is()方法用于确定两个值是否相同。
如果两个值具有以下属性之一,则它们可以相同:
- 如果两个值都未定义。
- 如果两个值都为null。
- 如果两个值都为true或false。
- 如果两个字符串的长度相同,且字符相同且顺序相同。
- 如果两个值均为数字,并且均为“+0”。
- 如果两个值均为数字,并且均为“-0”。
- 如果两个值均为数字,并且均为“NaN”或均为非零且均为非NaN且值均相同。
Object.is()接受两个参数作为要比较的值,并返回一个布尔值,指示两个参数是否相同。
Object.is()方法和“==”运算符之间的区别
“==”和“===”运算符将数字值“+0”和“-0”视为相等,而Object.is()方法将它们视为不相等。除此之外,“==”和“===”运算符不将Number.Nan视为Nan。
应用范围:
- Object.is()用于比较两个字符串。
- Object.is()用于比较两个数字。
- Object.is()用于比较两个数字的极性。
- Object.is()用于比较两个对象。
用法:
Object.is(value1, value2)
Parameters Used:
value1 : It is the first value to be compared.
value1 : It is the second value to be compared.返回值:
Object.is() returns a boolean indicating whether the two arguments are same or not.
下面提供上述函数的示例。
例子:
Input : Object.is('geeksforgeeks', 'geeksforgeeks'); Output: true
说明:在上面的示例中,Object.is()方法返回true,因为作为参数传递的两个字符串的长度均相同,字符相同且顺序相同。
Input : Object.is('geeksforgeeks', 'gfg'); Output : false
说明:在上面的示例中,Object.is()方法返回false,因为作为参数传递的两个字符串的长度都不相同,字符相同且顺序相同。
Input : Object.is(0,-0); Output: false
说明:在上面的示例中,Object.is()方法返回false,因为作为参数传递的两个数字都具有不同的极性。
Input : var check = { a: 100 }; Object.is(check, check); Output: true
说明:在以上示例中,已创建对象“check”并将其作为参数传递给Object.is()方法。因为两个参数都是单个对象并且相互比较,所以它返回true。
下面提供了上述函数的代码。
代码1:
<script>
// Comparing strings of the same length
// with the same characters in the same order
Object.is('geeksforgeeks', 'geeksforgeeks');
</script>
输出:
true
代码2:
<script>
// Comapring two different strings
Object.is('geeksforgeeks', 'gfg');
</script>
输出:
false
<script>
// Comapring 0 and -0
Object.is(0,-0);
</script>
输出:
false
代码4:
<script>
// Comparing a variable with itself
var check = { a: 100 };
Object.is(check, check);
</script>
输出:
false
异常:
- “==”和“===”运算符将数字值“+0”和“-0”视为相等,但object.is()方法将它们区别对待。
- 即使它们是不同的数据类型,Object.is()方法也不会在比较之前强制转换这些值。
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
注:本文由纯净天空筛选整理自Shubrodeep Banerjee大神的英文原创作品 Object.is() in JavaScript。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。