- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
我目前正在尝试理解 javascript 中的 constructor
tài sản.
请注意,我知道应该避免更改内置函数的属性,我正在尝试它是因为我想更好地理解基本原理。
我试图更改 []
的默认 constructor
属性(即数组对象的默认构造函数)
[].__proto__.constructor === [].constructor; // true
[].constructor = function A(){}; // attempts to reset the constructor property to a new function
[].constructor; // prints ƒ Array() { [native code] }, which indicate the attempt failed
但是当我检查[].constructor
的属性描述符时
Object.getOwnPropertyDescriptor([].__proto__, 'constructor');
In
{value: ƒ, writable: true, enumerable: false, configurable: true}
所以 [].__proto__.constructor
属性是可写
?
所以我尝试通过[].__proto__
设置constructor
属性,成功了
[].__proto__.constructor = function B(){};
[].__proto__.constructor; // prints: ƒ B(){}, which indicate the attempt succeded
为什么通过 []
Thay đổi constructor
属性失败但通过 [].__proto__
成功?尽管 [].constructor === [].__proto__.constructor
返回了 ĐÚNG VẬY
.
câu trả lời hay nhất
这是由于原型(prototype)链上的属性阴影。当你执行
[].constructor = ...;
这会在数组上创建一个实例属性,隐藏 类原型(prototype)构造函数。但是,由于 Array.prototype
已经有自己的 constructor
属性,执行
[].__proto__.constructor = ...;
che phủ Array.prototype
上的构造函数。
您可以通过实际存储数组实例并仔细查看其原型(prototype)链来确认此行为:
下面验证赋值实际上在 mảng1
上创建了一个自己的属性,它隐藏了从 Array.prototype
继承的属性。
hàm A(){}
var array1 = [];
array1.constructor = A;
console.log(array1.constructor === A);
console.log(array1.__proto__.constructor === Array);
关于javascript - 更改 [].__proto__.constructor 和 [].constructor 差异的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55410862/
Tôi muốn tạo một trình soạn thảo html rất đơn giản dựa trên jQuery (không phải WYSIWYG). Câu hỏi của tôi là làm thế nào để tạo một vùng văn bản hoặc div có thể viết một số văn bản trên đó và sau đó tạo kiểu cho nó, tức là nhãn (ví dụ: một số nội dung sẽ
Theo mệnh đề tài liệu isset "Kiểm tra xem thuộc tính đã cho đã được đặt trong dự án này chưa". Tôi không hiểu isset trả về đúng hay sai khi đặt thuộc tính Trong đoạn mã bên dưới, khi env.JAVA_HOME không được đặt, java.
Tôi đang cố gắng hủy ánh xạ o đây là lệnh mặc định để thực hiện :only ( :help :only ), vì vậy điều đầu tiên tôi thử là: nmap o Lệnh này hoạt động, trừ khi tôi nhấn, đợi nhiều hơn timeoutlen ms rồi nhấn o
Tôi có các mô hình sau: class MetaData(models.Model): create_at = models.DateTimeField(auto_now_add=True, auto_
Hai dòng mã được liệt kê dưới đây. Cả hai đều mong đợi cùng ngày và giờ, nhưng chỉ có một là hợp lệ. Tôi đang sử dụng R 3.1. Những điều sau đây không hoạt động: DateTime2=strftime("08/13/2010 05:26:24.350", f
Tôi có một câu hỏi về mã C. #include void foo(void){ int a; printf("%d\n",a } void bar(void){
Nếu kích thước tệp > 8k, tại sao byte cuối cùng được đọc = 0? riêng tư tĩnh cuối cùng int GAP_SIZE = 8 * 1024; public static void main(
Tôi có lệnh Get-Testdata lấy dữ liệu thử nghiệm từ các nguồn khác nhau và lưu trữ những dữ liệu này vào PSObject với các giá trị khác nhau làm thuộc tính. Tổng số đối tượng sau đó được lưu trữ dưới dạng một mảng để dễ dàng thao tác, sắp xếp, tính toán, v.v. Vấn đề của tôi là tôi muốn có thể chuyển đổi dữ liệu này
Tôi đang sử dụng epoll để viết các tin nhắn lớn tới máy chủ bằng giao thức HTTP. Tất cả các fds đều được đặt thành không chặn và tôi đang sử dụng các sự kiện được kích hoạt ở cạnh. Tôi biết rằng đối với EPOLLIN, tôi cần đọc fd theo vòng lặp cho đến khi EA được trả về
Điều này nghe có vẻ lạ đối với tôi: $test_1 = 'string'; $test_2 = '0'; var_dump(intval($test_1)); // Đầu ra: int 0 var_dump
Câu hỏi này đã có câu trả lời ở đây: Java: Số nguyên bằng so với == (7 câu trả lời) Đã đóng 7 năm trước. Hãy giải thích hành vi sau đây. lớp công khai EqAndRef { publ
Chính xác thì Drupal làm gì? Nó cung cấp loại lớp dịch vụ nào cho các nhà phát triển mô-đun? Loại mối quan hệ nào được ánh xạ tới jQuery.ready? Phiên bản dài của câu trả lời hay nhất: Drupal.behaviors không chỉ là jQuer
Đoạn mã sau: Clark_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ for (int i=0
Mọi người có thể thêm các mục vào cơ sở dữ liệu. Tôi đã cung cấp cho họ tùy chọn để thêm nó vào lúc này hoặc chọn ngày theo cách thủ công. Vì vậy, tôi đã có cấu trúc HTML này. (Lưu ý rằng tôi đã điều chỉnh bộ chọn ngày và giờ thành một dòng văn bản) Selec
Đã tạo khung dữ liệu: simpleDF is.na(simpleDF$vals) [1] TRUE TRUE FALSE > is.nan(simpleDF$vals) [1] FALSE TRU
Tôi có một hình ảnh docker lớn A, tôi đã tạo một Dockerfile mới TỪ MỘT thư mục RUN rm /big-Tôi đã cố gắng xây dựng hình ảnh bằng cách sử dụng: docker build --squas
Tôi muốn biết hành vi của JVM trong các tình huống sau: Kích thước vùng heap tối thiểu của JVM = 500 MB Kích thước vùng heap tối đa của JVM = 2GB Hệ điều hành có 1GB bộ nhớ Sau khi JVM được khởi động, sau khi chương trình chạy được một lúc, bộ nhớ sẽ xuất hiện đã sử dụng vượt quá 1GB. tôi muốn biết
Chúng tôi đang sử dụng chiến lược Spikeearrest nhưng chúng tôi không hiểu nó hoạt động như thế nào. Cấu hình bắt giữ cao điểm như sau: 5 giờ chiều Đọc tài liệu, chúng tôi hiểu rằng nếu chúng tôi gọi luồng này hơn 5 lần trong một phút, chính sách sẽ có sau lần thứ 5
Tôi đang sử dụng cURL để gửi yêu cầu POST: Curl http://tarvos.local:8080/partial_Users/2 -d '{currentPage : 1, firstID :
Tôi có 6442670 bản ghi trong bảng của mình và tôi nhận được chúng bằng cách sử dụng jdbctemplate 1000000 mỗi lần bằng cách sử dụng số hàng. Sau đây là truy vấn select * from (select rowNum rn
Tôi là một lập trình viên xuất sắc, rất giỏi!